我用vue-cli3搭建的项目,在进行webpack按需分包之后,生产环境打包和测试环境打包出来的文件名和数量不一致:
对于生产环境的包,能正确的将文件按照页面分包打包出来,而测试环境的打包只能打包成1.js,2.js这种,并且少了chunk.js
我的vue.config.js配置如下:
chainWebpack: config => {
config.resolve.alias
.set("@", resolve("./src"))
.set("assets", resolve("src/assets"))
.set("components", resolve("src/components"))
.set("containers", resolve("src/containers"))
.set("service", resolve("src/service"))
.set("utils", resolve("src/utils"))
.set("store", resolve("src/store"))
.set("config", resolve("src/config"))
.set("pubilc", resolve("pubilc"));
config.output.filename("static/js/[name].[hash].js").end();
},
configureWebpack: config => {
config.optimization = {
runtimeChunk: "single",
splitChunks: {
chunks: "all",
maxInitialRequests: Infinity,
minSize: 20000,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name(module) {
const packageName = module.context.match(
/[\\/]node_modules[\\/](.*?)([\\/]|$)/
)[1];
return `npm.${packageName.replace("@", "")}`;
},
},
},
},
};
},
请问如何改能将测试环境的打包内容改成和生产环境一样呢?
补充:
package.json里面的命令:
"build": "vue-cli-service build",
"uat": "vue-cli-service build --mode test",
因为
vue-cli
的test
会有一些process.env.NODE_ENV === 'test'
的判断,所以想和线上环境一样最简单的办法就是不用它的mode