12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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,
- },
- }),
- ],
- };
|