summaryrefslogtreecommitdiff
path: root/webpack.production.js
diff options
context:
space:
mode:
Diffstat (limited to 'webpack.production.js')
-rw-r--r--webpack.production.js77
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'
+ ]
+ }]
+ }
}]