Я пытаюсь перенести проект из веб-пакета 3 в веб-пакет 4. В предыдущей версии была такая конфигурация:
new webpack.optimize.CommonsChunkPlugin({ names: ['common', 'initApp'], filename: '[name].[hash].js' }),
new webpack.optimize.CommonsChunkPlugin({ names: ['app'], children: true, minChunks: 2, filename: '[name].[hash].js' }),
Как правильно перенести проект в веб-пакет 4?
Iпопробовал следующий конфиг:
optimization: {
minimize: !development,
noEmitOnErrors: true, //! Webpack 4
splitChunks: {
cacheGroups: {
utils: {
name: 'utils',
test: /utils/,
chunks: 'initial',
reuseExistingChunk: true
},
initApp: {
name: 'initApp',
test: /initApp/,
},
common: {
name: 'common',
test: /common/,
chunks: 'all',
},
app: {
minChunks: 2,
name: 'app',
test: /app/,
},
},
},
minimizer: [],
namedModules: development,
},
И вот проблема, которая у меня возникла: у некоторых my_module
(из node_modules) есть следующий код (я переместил его в точку входа utils
):
let localeStrings;
export function l10n(key, ...args) {
if (!localeStrings) {
throw new Error('l10nLib.l10n called before locale strings loaded');
}
/// Do some logic
}
// And here some function is initialize localeStrings that we are calling `initApp` entry point
Теперь с текущей конфигурацией этот чанк (из my_module) вызывается дважды: первый раз из initApp
и второй раз из app
точки входа и localeStrings
переменная в первый раз правильно инициализируется при вызове из initApp
ивторой раз, когда он вызывался из app
точки входа localeStrings
, это undefined
, почему?