Webpack 4 - Что такое splitChunks эквивалентно minChunk: Infinity
В веб-пакете 3 у нас была возможность иметь зависимость, и все ее зависимости группировались в "общий блок" с помощью:
new webpack.optimize.CommonsChunkPlugin({
name: 'common-init',
minChunks: Infinity
})
В Webpack 4 вам нужно использовать splitChunks. Однако теперь все основано на minChunk и тесте, который не поддерживает "Бесконечность", и если вы хотите получить что-то "похожее" на вышеприведенное, вам теперь нужно будет использовать "тест", как показано ниже, так что другая "cacheGroup" не связывает эти зависимости:
cacheGroups: {
'common-init' : {
name: 'common-init',
chunks: 'initial',
minChunks: 2,
enforce : true,
priority : 10,
test : /common|somedepInit.js|analyticsDep|otherDepInit/
},
'resources': {
name: 'resources',
chunks: 'initial',
minChunks: 2,
test: /resources/
}
}
Хотя это технически решение, которое я могу использовать, использование Infinity требовало гораздо меньшего количества кода, чтобы обеспечить соблюдение определенных зависимостей, которые оказались в очень специфической "общей части".
Есть ли лучший способ добиться того же в Webpack 4?
1 ответ
Это сработало для меня:
'common-init' : {
name: 'common-init',
chunks: 'initial',
minChunks: 2,
enforce : true,
priority : 10,
test: (module, chunks) => chunks.some(({ name }) => name === 'common-init')
},