const path = require('path'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const nodeExternals = require('webpack-node-externals'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); module.exports = { mode: 'production', entry: './src/kityminderEditor.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, '../dist'), libraryTarget: 'commonjs2', }, module: { rules: [ { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/, }, { test: /\.css$/, use: ['style-loader', 'css-loader'], }, // 抽离 less { test: /\.less$/, exclude: /\.module\.less$/, loader: [ MiniCssExtractPlugin.loader, // 注意,这里不再用 style-loader 'css-loader', 'less-loader' ] }, { test: /\.module\.less$/, loader: [ 'style-loader', { loader: 'css-loader', options: { modules: { localIdentName: '[local]_[hash:base64:5]', } } }, // 'css-loader?modules', 'less-loader' ] }, { test: /\.s[ac]ss$/i, use: [ // Creates `style` nodes from JS strings 'style-loader', // Translates CSS into CommonJS 'css-loader', // Compiles Sass to CSS 'sass-loader', ], }, ], }, // devtool: 'nosources-source-map', // devtool: 'source-map', devtool: 'cheap-module-source-map', externals: [nodeExternals()], plugins: [ new CleanWebpackPlugin(), new UglifyJsPlugin({ sourceMap: true, parallel: true, uglifyOptions: { output: { beautify: false, // 最紧凑的输出 comments: false, // remove comments }, compress: { unused: true, dead_code: true, // big one--strip code that will never execute drop_debugger: true, conditionals: true, evaluate: true, drop_console: false, // strips console statements sequences: true, booleans: true, }, warnings: false, }, }), ], };