diff options
Diffstat (limited to 'config/webpack/shared.js')
-rw-r--r-- | config/webpack/shared.js | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/config/webpack/shared.js b/config/webpack/shared.js index 4986ea24d..1d75e2af2 100644 --- a/config/webpack/shared.js +++ b/config/webpack/shared.js @@ -10,15 +10,20 @@ const ExtractTextPlugin = require('extract-text-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); const extname = require('path-complete-extname'); const { env, paths, publicPath, loadersDir } = require('./configuration.js'); +const localePackPaths = require('./generateLocalePacks'); const extensionGlob = `**/*{${paths.extensions.join(',')}}*`; const packPaths = sync(join(paths.source, paths.entry, extensionGlob)); +const entryPacks = [].concat(packPaths).concat(localePackPaths); module.exports = { - entry: packPaths.reduce( + entry: entryPacks.reduce( (map, entry) => { const localMap = map; - const namespace = relative(join(paths.source, paths.entry), dirname(entry)); + let namespace = relative(join(paths.source, paths.entry), dirname(entry)); + if (namespace === '../../../tmp/packs') { + namespace = ''; // generated by generateLocalePacks.js + } localMap[join(namespace, basename(entry, extname(entry)))] = resolve(entry); return localMap; }, {} @@ -41,7 +46,15 @@ module.exports = { new ManifestPlugin({ fileName: paths.manifest, publicPath, writeToFileEmit: true }), new webpack.optimize.CommonsChunkPlugin({ name: 'common', - minChunks: 2, + minChunks: (module, count) => { + if (module.resource && /node_modules\/react-intl/.test(module.resource)) { + // skip react-intl because it's useless to put in the common chunk, + // e.g. because "shared" modules between zh-TW and zh-CN will never + // be loaded together + return false; + } + return count >= 2; + }, }), ], |