├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── postcss.config.js
├── src
├── index.html
└── index.js
└── webpack.config.dev.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.swp
3 | public
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # summernote-webpack-example
2 |
3 | Feel free to send a pull request.
4 |
5 | ## versions
6 | * @babel/core: ^7.8.7,
7 | * bootstrap: ^4.4.1,
8 | * codemirror: "^5.52.0,
9 | * jquery: ^3.4.1,
10 | * popper.js: ^1.16.1,
11 | * summernote: ^0.8.16
12 |
13 | ## installation
14 |
15 | ```
16 | # install modules
17 | npm install
18 |
19 | # start webpack dev server
20 | npm run dev
21 | ```
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "summernote-webpack-example",
3 | "version": "2.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "dev": "webpack-dev-server --config=webpack.config.dev.js",
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "summernote",
11 | "license": "MIT",
12 | "dependencies": {
13 | "@babel/core": "^7.8.7",
14 | "bootstrap": "^4.4.1",
15 | "codemirror": "^5.58.2",
16 | "jquery": "^3.5.0",
17 | "popper.js": "^1.16.1",
18 | "summernote": "^0.8.16"
19 | },
20 | "devDependencies": {
21 | "autoprefixer": "^9.7.4",
22 | "babel-loader": "^8.0.6",
23 | "css-loader": "^3.4.2",
24 | "file-loader": "^5.1.0",
25 | "html-loader": "^0.5.5",
26 | "html-webpack-plugin": "^3.2.0",
27 | "mini-css-extract-plugin": "^0.9.0",
28 | "postcss-loader": "^3.0.0",
29 | "sass": "^1.26.2",
30 | "sass-loader": "^8.0.2",
31 | "webpack": "^4.42.0",
32 | "webpack-cli": "^3.3.11",
33 | "webpack-dev-server": "^3.10.3"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {}
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Summernote webpack test
6 |
7 |
8 |
9 |
summernote webpack test
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import $ from 'jquery';
2 | import 'popper.js';
3 | import 'bootstrap';
4 | import 'bootstrap/dist/css/bootstrap.min.css';
5 |
6 | import CodeMirror from 'codemirror/lib/codemirror';
7 | import 'codemirror/lib/codemirror.css';
8 | import 'codemirror/mode/xml/xml';
9 | import 'codemirror/theme/monokai.css'
10 |
11 | import 'summernote/dist/summernote-bs4';
12 | import 'summernote/dist/summernote-bs4.css';
13 |
14 | $(".summernote").summernote({
15 | height: 150, //set editable area's height
16 | codemirror: { // codemirror options
17 | CodeMirrorConstructor: CodeMirror,
18 | theme: 'monokai'
19 | }
20 | });
21 |
--------------------------------------------------------------------------------
/webpack.config.dev.js:
--------------------------------------------------------------------------------
1 | const HtmlWebPackPlugin = require('html-webpack-plugin');
2 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
3 | const webpack = require('webpack');
4 | const path = require('path');
5 |
6 | module.exports = {
7 | entry: {
8 | app: path.join(__dirname, 'src/index.js')
9 | },
10 | output: {
11 | path: path.join(__dirname, 'dist'),
12 | },
13 | devServer: {
14 | port: 3000,
15 | contentBase: ['./dist'],
16 | },
17 | target: "node",
18 | module: {
19 | rules: [
20 | {
21 | test: /\.js$/,
22 | exclude: /node_modules/,
23 | use: [
24 | {
25 | loader: 'babel-loader',
26 | },
27 | ],
28 | },
29 | {
30 | test: /\.html$/,
31 | use: [
32 | {
33 | loader: 'html-loader',
34 | options: {
35 | minimize: false,
36 | },
37 | },
38 | ],
39 | },
40 | {
41 | test: /\.(sa|sc|c)ss$/,
42 | use: [
43 | {
44 | loader: MiniCssExtractPlugin.loader,
45 | },
46 | {
47 | loader: 'css-loader',
48 | },
49 | {
50 | loader: 'postcss-loader',
51 | },
52 | {
53 | loader: 'sass-loader',
54 | options: {
55 | implementation: require('sass'),
56 | },
57 | },
58 | ]
59 | },
60 | {
61 | test: /\.(png|jpe?g|gif|svg)$/,
62 | use: [
63 | {
64 | loader: 'file-loader',
65 | options: {
66 | name: '[name].[ext]',
67 | outputPath: 'images',
68 | },
69 | },
70 | ],
71 | },
72 | {
73 | test: /\.(woff|woff2|ttf|otf|eot)$/,
74 | use: [
75 | {
76 | loader: 'file-loader',
77 | options: {
78 | name: '[name].[ext]',
79 | outputPath: 'font',
80 | },
81 | },
82 | ],
83 | },
84 | ],
85 | },
86 | plugins: [
87 | new webpack.ProvidePlugin({
88 | $: 'jquery',
89 | jQuery: 'jquery',
90 | CodeMirror: 'codemirror',
91 | }),
92 | new MiniCssExtractPlugin({
93 | filename: '[name].css',
94 | }),
95 | new HtmlWebPackPlugin({
96 | inject: true,
97 | template: `./src/index.html`,
98 | filename: 'index.html',
99 | }),
100 | ],
101 | };
102 |
--------------------------------------------------------------------------------