为什么 webpack 会捆绑额外的文件?
Why is webpack bundling extra files?
我创建了一个简单的 github repo 来重现我的场景。
我有 2 个配置文件:dev.vue.config.js 和 prod.vue.config.js,它们的使用取决于 NODE_ENV 值
对于产品,我的 webpack 入口点设置为
configureWebpack: {
entry: {
activitySubmit: './src/as-setup.js'
}
}
我还使用 SplitChunks 插件将 node_modules 捆绑到 vendors.js 中,所以我希望 webpack 生成 2 个文件:activitySubmit.js 和 vendors.js
但是我也得到了第 3 个文件 app.js 其内容为 src/main.js 但是为什么 ?我没有将它指定为我的入口点,也没有其他文件从 main.js 导入任何内容,那么为什么它仍然被捆绑?我在产品中不需要它。
现在,如果我将入口点更改为
configureWebpack: {
entry: {
app: './src/as-setup.js'
}
}
我得到 2 个文件:app.js 和 vendors.js
如果我检查 app.js 我可以看到它现在不包含来自 src/main.js[=38 的代码=](如预期)。
我很困惑,请帮忙解释一下逻辑
这个问题在 Vue 论坛上得到了回答,所以我也在这里发布答案
运行
vue inspect --mode production
将显示 Vue CLI 生成的 Webpack 配置。它结束于:
entry: {
app: [
'./src/main.js'
],
activitySubmit: './src/as-setup.js'
}
因为如 vue docs 中所述,您在 configureWebpack 中提供的配置已使用 webpack-merge 合并,因此默认条目仍然存在。
我创建了一个简单的 github repo 来重现我的场景。
我有 2 个配置文件:dev.vue.config.js 和 prod.vue.config.js,它们的使用取决于 NODE_ENV 值
对于产品,我的 webpack 入口点设置为
configureWebpack: {
entry: {
activitySubmit: './src/as-setup.js'
}
}
我还使用 SplitChunks 插件将 node_modules 捆绑到 vendors.js 中,所以我希望 webpack 生成 2 个文件:activitySubmit.js 和 vendors.js
但是我也得到了第 3 个文件 app.js 其内容为 src/main.js 但是为什么 ?我没有将它指定为我的入口点,也没有其他文件从 main.js 导入任何内容,那么为什么它仍然被捆绑?我在产品中不需要它。
现在,如果我将入口点更改为
configureWebpack: {
entry: {
app: './src/as-setup.js'
}
}
我得到 2 个文件:app.js 和 vendors.js
如果我检查 app.js 我可以看到它现在不包含来自 src/main.js[=38 的代码=](如预期)。 我很困惑,请帮忙解释一下逻辑
这个问题在 Vue 论坛上得到了回答,所以我也在这里发布答案
运行
vue inspect --mode production
将显示 Vue CLI 生成的 Webpack 配置。它结束于:
entry: {
app: [
'./src/main.js'
],
activitySubmit: './src/as-setup.js'
}
因为如 vue docs 中所述,您在 configureWebpack 中提供的配置已使用 webpack-merge 合并,因此默认条目仍然存在。