webpack 分包,如何把模块和依赖打包在一起
问题出现的环境背景
Webpack v5
问题描述
主入口 index.js 引用 components 目录下的 a
模块和 b
模块,a
模块中引用 c
模块,index.js 中并未直接引用 c
模块。
想要把 components 目录下用到的模块以及它们的依赖打包在一起。
相关代码
// webpack.config.js
const path = require("path");
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
.BundleAnalyzerPlugin;
module.exports = {
mode: "production",
entry: "./src/index.js",
output: {
path: path.resolve(__dirname, "dist")
},
optimization: {
runtimeChunk: "single",
splitChunks: {
cacheGroups: {
vendor: {
test: /[\\/]components[\\/]/,
name: "vendors",
chunks: "all",
priority: 10,
enforce: true,
reuseExistingChunk: true
}
}
}
},
plugins: [
new BundleAnalyzerPlugin({
openAnalyzer: false
})
]
};
得到的结果,c
模块进了主 bundle
Project Code:https://codesandbox.io/s/sill...
Preview:https://k6gew.sse.codesandbox...
你期待的结果是什么?实际看到的错误信息又是什么?
期望 c 模块优先和自定义模块打包在一起,能怎么实现呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为
c.js
是直接在src
下,vendor
的判断条件不会匹配到c.js
可以通过修改
test
来匹配到c.js
,从而让c.js
也能打包进vendor
中