Я пытаюсь заставить оптимизацию splitChunks Webpack-4 сделать это:
- Поместите весь JS и CSS не в какую-либо точку входа, а используйте более одного раза в общие файлы (CSS и JS).
- Объедините весь CSS, созданный MiniCssExtractPlugin из компонентов Vue, в один общий файл CSS.
У меня это работает (см. Ниже), но эффект второго правила «extractStuff» заключается в том, что весь код точки входа также помещается в общий блок, что я и пытаюсь предотвратить с помощью этого «теста». Файлы «точки входа» - это просто заглушки веб-пакета, и все находится в общем файле, даже если он используется только один раз. Это работает, но не элегантно.
Кто-нибудь знает, как исключить точки входа из этого второго правила, или есть лучший способ сделать это в целом?
Кто-нибудь знает, где находится определение этих объектов "модуль, фрагменты", возможно, я смогу как-нибудь улучшить этот тест.
splitChunks: {
cacheGroups: { // Idea from github.com/webpack/webpack/issues/7230
mainJS: {
test: /\.js$/,
name: "commons",
chunks: "all",
minChunks: 2, // Makes it leave entry point JS alone.
minSize: 0,
priority: 20,
enforce: true
},
extractedStuff: {
test: (module, chunks) => module.depth > 0,
name: "commons", // Append to same file as previous rule.
chunks: "all",
minChunks: 1, // ..or single-use CSS is not bundled.
minSize: 0,
priority: 10,
enforce: true
}
}
},