diff options
Diffstat (limited to '')
-rw-r--r-- | webpack.production.js | 77 |
1 files changed, 43 insertions, 34 deletions
diff --git a/webpack.production.js b/webpack.production.js index a79643b6..67387583 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -1,9 +1,9 @@ var baseConfig = require('./webpackBaseConfig') var webpack = require('webpack') var path = require('path') -var ExtractTextPlugin = require('extract-text-webpack-plugin') -var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin') -var ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin') +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') module.exports = [Object.assign({}, baseConfig, { plugins: baseConfig.plugins.concat([ @@ -11,44 +11,36 @@ module.exports = [Object.assign({}, baseConfig, { 'process.env': { 'NODE_ENV': JSON.stringify('production') } - }), - new ParallelUglifyPlugin({ - uglifyJS: { - compress: { - warnings: false - }, - output: { - max_line_len: 1000000 - }, - mangle: false, - sourceMap: false - } - }), - new ExtractTextPlugin('[name].[hash].css') + }) ]), + optimization: { + minimizer: [ + new UglifyJsPlugin({ + parallel: true, + cache: true + }) + ], + splitChunks: { + chunks: 'async', + minChunks: Infinity + } + }, + output: { path: path.join(__dirname, 'public/build'), publicPath: '/build/', - filename: '[id].[name].[hash].js', - baseUrl: '<%- url %>' + filename: '[id].[name].[hash].js' + // baseUrl: '<%- url %>' } }), { + // This Chunk is used in the 'save as html' feature. + // It is embedded in the html file and contains CSS for styling. + entry: { htmlExport: path.join(__dirname, 'public/js/htmlExport.js') }, - module: { - loaders: [{ - test: /\.css$/, - loader: ExtractTextPlugin.extract('style-loader', 'css-loader') - }, { - test: /\.scss$/, - loader: ExtractTextPlugin.extract('style-loader', 'sass-loader') - }, { - test: /\.less$/, - loader: ExtractTextPlugin.extract('style-loader', 'less-loader') - }] - }, + output: { path: path.join(__dirname, 'public/build'), publicPath: '/build/', @@ -60,7 +52,24 @@ module.exports = [Object.assign({}, baseConfig, { 'NODE_ENV': JSON.stringify('production') } }), - new ExtractTextPlugin('html.min.css'), - new OptimizeCssAssetsPlugin() - ] + new MiniCssExtractPlugin({ + filename: 'html.min.css' + }) + ], + + optimization: { + minimizer: [ + new OptimizeCSSAssetsPlugin({}) + ] + }, + + module: { + rules: [{ + test: /\.css$/, + use: [ + MiniCssExtractPlugin.loader, + 'css-loader' + ] + }] + } }] |