diff options
author | David Mehren | 2018-10-10 21:54:27 +0200 |
---|---|---|
committer | David Mehren | 2018-10-10 22:09:46 +0200 |
commit | 9f92bba036860c61277d252a39a5417f67231bc1 (patch) | |
tree | 2e66c92dd963efac07b9a93b7b7f09852fc8d481 /webpack.prod.js | |
parent | 9a2dcd40d37c01896deeae0c8059564b4bdd6dc1 (diff) |
Use webpack-merge.
Move html export config to own file.
Delete unnecessary config options.
Use cheap source maps.
Signed-off-by: David Mehren <dmehren1@gmail.com>
Diffstat (limited to 'webpack.prod.js')
-rw-r--r-- | webpack.prod.js | 90 |
1 files changed, 19 insertions, 71 deletions
diff --git a/webpack.prod.js b/webpack.prod.js index f3c7dad3..188d9881 100644 --- a/webpack.prod.js +++ b/webpack.prod.js @@ -1,75 +1,23 @@ -var baseConfig = require('./webpack.common') -var webpack = require('webpack') -var path = require('path') +const common = require('./webpack.common.js') +const htmlexport = require('./webpack.htmlexport') +const merge = require('webpack-merge') +const path = require('path') 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([ - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify('production') - } - }) - ]), - - optimization: { - minimizer: [ - new UglifyJsPlugin({ - parallel: true, - cache: true - }) - ], - splitChunks: { - chunks: 'async', - minChunks: Infinity +module.exports = [ + merge(common, { + mode: 'production', + output: { + path: path.join(__dirname, 'public/build'), + publicPath: '/build/', + filename: '[name].[contenthash].js' } - }, - - output: { - path: path.join(__dirname, 'public/build'), - publicPath: '/build/', - 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') - }, - - output: { - path: path.join(__dirname, 'public/build'), - publicPath: '/build/', - filename: '[name].js' - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify('production') - } - }), - new MiniCssExtractPlugin({ - filename: 'html.min.css' - }) - ], - - optimization: { - minimizer: [ - new OptimizeCSSAssetsPlugin({}) - ] - }, - - module: { - rules: [{ - test: /\.css$/, - use: [ - MiniCssExtractPlugin.loader, - 'css-loader' + }), + merge(htmlexport, { + mode: 'production', + optimization: { + minimizer: [ + new OptimizeCSSAssetsPlugin({}) ] - }] - } -}] + } + })] |