vue cli3 打包build 区分测试环境和正式环境

vue cli3没有了和之前vue cli2一样的配置文件,
但项目中 经常会有测试环境和生产环境,经常不同环境的域名是不一致的,因为build构建打包时,process.env.NODE_ENV默认是production的生产环境,所以我们每次build都去手动更改请求域名,很麻烦。。。
但我们又不能直接去更改process.env.NODE_ENV等于test来区分是测试环境,这样打包出来的包结构和production打包出来的是不一样的。如图:
vue cli3 打包build 区分测试环境和正式环境_第1张图片
这个才是正常的:
vue cli3 打包build 区分测试环境和正式环境_第2张图片

解决:
在根目录下创建两个.env的文件,.env.build是生产环境,.env.test是测试环境,两个文件的【NODE_ENV】都= ‘production’
用另一个变量【VUE_APP_CURRENTMODE】 来区分环境
VUE_APP_CURRENTMODE = ‘test’
VUE_APP_CURRENTMODE = ‘production’

vue cli3 打包build 区分测试环境和正式环境_第3张图片
vue cli3 打包build 区分测试环境和正式环境_第4张图片
vue cli3 打包build 区分测试环境和正式环境_第5张图片
域名根据变量【VUE_APP_CURRENTMODE】 来区分:
vue cli3 打包build 区分测试环境和正式环境_第6张图片
然后再package.json里面配置运行脚本:“build”: “vue-cli-service build --no-clean --mode build && vue-cli-service build --mode test”

vue cli3 打包build 区分测试环境和正式环境_第7张图片
可同时打包生成dist和test两个构建文件的目录
注:
生成test目录需要再vue.config.js里面配置【outputDir】:
vue cli3 打包build 区分测试环境和正式环境_第8张图片

–no-clean:
当运行 vue-cli-service build 时生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)。

你可能感兴趣的:(前端)