Отдельные пакеты образуют динамически импортируемые модули узлов
У меня есть следующая конфигурация в конфигурации веб-пакета для разделенных кусков. Это отлично создает два поставщика пакетов (модули узлов, которые были импортированы в исходные файлы) и общие (модули узлов, которые были импортированы в компонентах с отложенной загрузкой).
splitChunks: {
name: true,
cacheGroups: {
default: false,
vendors: false,
vendor: {
test: /[\\/]node_modules[\\/]/,
name: "vendors",
chunks: "initial"
},
common: {
test: /[\\/]node_modules[\\/]/,
name: "common",
minChunks: 2,
chunks: "async",
priority: 10,
reuseExistingChunk: true,
enforce: true
}
}
},
Вопрос. Но есть некоторые модули узлов, которые я не хочу включать ни в один из пакетов. Ни два вышеупомянутых, ни основные связки, а должны быть созданы отдельно.
import('lodash')
должен создать lodash.chunk.js.
import('underscore')
должен создать файл underscore.chunk.js.
Можно мне подумал волшебный комментарий? /* webpackIgnore: true*/
1 ответ
Здесь ваш lodash будет добавлен в общий блок на основе текущей конфигурации splitchunks. Чтобы загрузить его как отдельный блок, измените конфигурацию splitchunks на
var vendorCheck = function vendorCheck(module) {
var request = module.userRequest;
// Specify the packages in the condition that need not be present in vendor chunk
// Here I am excluding the package lodash from vendor chunk
return request && request.indexOf('node_modules') >= 0 && request.indexOf('node_modules/lodash') === -1
};
var lodashCheck = function lodashCheck(module) {
var request = module.userRequest;
return request && request.indexOf('node_modules/lodash') >= 0
}
cacheGroups: {
default: false,
'lodash': {
name: 'lodash',
chunks: 'all',
minChunks: 1,
test: lodashCheck
},
vendor: {
name: 'vendor',
chunks: 'all',
minChunks: 1,
test: vendorCheck
},
common: {
test: vendorCheck,
name: "common",
minChunks: 2,
chunks: "async",
priority: 10,
reuseExistingChunk: true,
enforce: true
}
}