Я пытаюсь использовать плагин Webpack 4 Split Chunks для создания пакетов нескольких поставщиков.В этом случае я хочу создать один блок для реагирования / реагирования-домена и один блок для реакции-маршрутизатора / реагирования-маршрутизатора-домена.
Когда cacheGroups
содержит только react
и vendor
Сборка работает как положено.Выходные данные пакета:
- index
- react
- runtime
- vendors
Аналогично, если у меня есть только cacheGroups для router
и vendor
, все работает как положено.Вывод:
- index
- router
- runtime
- vendors
В любом случае, когда создаются чанки, проверка показывает правильный код для react
или router
в соответствующих случаях.
НО... это не работает, когда я включаю оба - в этом случае создается только блок router
, а код react
помещается в комплект индекса (src).
Iподозреваете, что в шаблонах регулярных выражений что-то не так, что вызывает аннулирование предыдущей cacheGroup?Любая помощь приветствуется.
Вот мой конфиг веб-пакета для splitChunks:
splitChunks: {
cacheGroups: {
react: {
test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
name: 'react',
chunks: 'all'
},
router: {
test: /[\\/]node_modules[\\/](react-router|react-router-dom)[\\/]/,
name: 'router',
chunks: 'all'
},
vendor: {
test(mod) {
// exclude anything outside node modules
if (!mod.context.includes('node_modules')) {
return false;
}
// exclude react and react-dom
if (/[\\/]node_modules[\\/](react|react-dom)[\\/]/.test(mod.context)) {
return false;
}
// exclude react-router and react-router-dom
if (/[\\/]node_modules[\\/](react-router|react-router-dom)[\\/]/.test(mod.context)) {
return false;
}
// return all other node modules
return true;
},
name: 'vendors',
chunks: 'all'
}
}
}