From 7317b7b2313bdddf3b2d3a6c4fa7f00f2cc0f645 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Sat, 28 Jul 2018 16:42:13 +0200 Subject: [PATCH] Reduce assets precompilation time by about 20% MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundle most common webpack chunks into a “common” pack, in a way similar to what upstream does. --- config/webpack/shared.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/config/webpack/shared.js b/config/webpack/shared.js index 6b6629a37..58eab4b4c 100644 --- a/config/webpack/shared.js +++ b/config/webpack/shared.js @@ -44,13 +44,16 @@ function reducePacks (data, into = {}) { return into; } +const entries = Object.assign( + { locales: resolve('app', 'javascript', 'locales') }, + localePacks, + reducePacks(core), + Object.keys(flavours).reduce((map, entry) => reducePacks(flavours[entry], map), {}) +); + + module.exports = { - entry: Object.assign( - { locales: resolve('app', 'javascript', 'locales') }, - localePacks, - reducePacks(core), - Object.keys(flavours).reduce((map, entry) => reducePacks(flavours[entry], map), {}) - ), + entry: entries, output: { filename: '[name].js', @@ -67,11 +70,14 @@ module.exports = { cacheGroups: { default: false, vendors: false, - locales: { - name: 'locales', - chunks: 'all', - minChunks: Infinity, + common: { + name: 'common', + chunks (chunk) { + return !(chunk.name in entries); + }, + minChunks: 2, minSize: 0, + test: /^(?!.*[\\\/]node_modules[\\\/]react-intl[\\\/]).+$/, }, }, },