about summary refs log tree commit diff
path: root/config/webpack
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-07-28 16:42:13 +0200
committerThibG <thib@sitedethib.com>2018-07-28 23:24:41 +0200
commit7317b7b2313bdddf3b2d3a6c4fa7f00f2cc0f645 (patch)
tree11ea958964e48d0a86c653cfccbaeb8fc394304d /config/webpack
parentd3783b864c8881bc3d59b5aa42a70d35869ffef6 (diff)
Reduce assets precompilation time by about 20%
Bundle most common webpack chunks into a “common” pack,
in a way similar to what upstream does.
Diffstat (limited to 'config/webpack')
-rw-r--r--config/webpack/shared.js26
1 files 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[\\\/]).+$/,
         },
       },
     },