From 8ae5d794c0f9ec6f481ed84e8b21c1432972a1ba Mon Sep 17 00:00:00 2001 From: Luke Edwards Date: Fri, 5 Jan 2018 10:17:56 -0800 Subject: [PATCH] add aggressive-like commons chunk settings --- webpack.client.config.js | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/webpack.client.config.js b/webpack.client.config.js index 50254cc..e0e6495 100644 --- a/webpack.client.config.js +++ b/webpack.client.config.js @@ -1,8 +1,10 @@ -const config = require('sapper/webpack/config.js'); const webpack = require('webpack'); -const ExtractTextPlugin = require("extract-text-webpack-plugin"); +const config = require('sapper/webpack/config.js'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); +const isDev = config.dev; + module.exports = { entry: config.client.entry(), output: config.client.output(), @@ -18,33 +20,41 @@ module.exports = { loader: 'svelte-loader', options: { hydratable: true, - emitCss: !config.dev, + emitCss: !isDev, cascade: false, store: true } } }, - config.dev && { + isDev && { test: /\.css$/, use: [ - { loader: "style-loader" }, - { loader: "css-loader" } + { loader: 'style-loader' }, + { loader: 'css-loader' } ] }, - !config.dev && { + !isDev && { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', - use: [{ loader: 'css-loader', options: { sourceMap: config.dev } }] + use: [{ loader: 'css-loader', options: { sourceMap:isDev } }] }) } ].filter(Boolean) }, plugins: [ - config.dev && new webpack.HotModuleReplacementPlugin(), - !config.dev && new ExtractTextPlugin('main.css'), - !config.dev && new webpack.optimize.ModuleConcatenationPlugin(), - !config.dev && new UglifyJSPlugin() - ].filter(Boolean), - devtool: config.dev ? 'inline-source-map' : false -}; \ No newline at end of file + new webpack.optimize.CommonsChunkPlugin({ + minChunks: 2, + async: false, + children: true + }) + ].concat(isDev ? [ + new webpack.HotModuleReplacementPlugin() + ] : [ + new ExtractTextPlugin('main.css'), + new webpack.optimize.ModuleConcatenationPlugin(), + new webpack.optimize.AggressiveSplittingPlugin(), + new UglifyJSPlugin() + ]).filter(Boolean), + devtool: isDev && 'inline-source-map' +};