Я хотел бы собрать 2 оптимизированные библиотеки с веб-пакетом 4. Эти библиотеки используют тех же поставщиков.
В моем случае bundle A
является обязательным и всегда будет его использовать. bundle B
является дополнением к bundle A
и является необязательным.
В первый раз я строю без оптимизации:
module.exports = {
entry: {
bundle_A: "./src/index_A.js",
bundle_B: "./src/index_B.js"
},
output: {
filename: '[name].js',
library: '[name]',
libraryTarget: 'umd',
umdNamedDefine: true,
},
}
Я получаю две библиотеки одинакового размера.
Во второй раз я строю с оптимизацией:
Теперь я хотел бы объединить все общие продавцы в библиотеке bundle_A
, чтобы уменьшить размер bundle_B
.
Я изменяю конфигурацию веб-пакета с помощью плагина splitChunks
.
Чтобы объединить поставщиков в bundle_A
, я добавляю cacheGroups с тем же именем bundle_A
.
Я создаю тестовое хранилище
module.exports = {
entry: {
bundle_A: "./src/index_A.js",
bundle_B: "./src/index_B.js"
},
output: {
filename: '[name].js',
library: '[name]',
libraryTarget: 'umd',
umdNamedDefine: true,
},
optimization: {
splitChunks: {
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
name: 'bundle_A',
chunks: 'all',
}
}
}
}
}
Я получаю bundle_A
со всеми поставщиками , но при выполнении window.bundle_A
undefined
.
Как работает библиотека, которая работает со всеми распространенными поставщиками?