看了很多文章,都没有搞清楚.env文件中哪些是vue保留字段,哪些是继承自nodejs的
首先.env文件是node运行时读取的配置文件
首先时NODE_ENV,源自nodejs
NODE_ENV属性一般可以省略不写,例如常用的.env.production,.env.test,.env.development
这三个文件,如果没有在文件里注明NODE_ENV属性,那就默认就是分别对应NODE_ENV=production 对应vue-cli-service build 命令
NODE_ENV=test
NODE_ENV=development 对应vue-cli-service serve 命令
以上三个NODE_ENV,除去development 是调试状态,test和production 都是打包用的,但是打包方式不同,production会做代码压缩,而test不会(打出来的包很大)
然后就是vue-cli的字段MODE,主要是vue-cli-service build 命令用到
例如vue-cli-service build --mode test
NODE_ENV=production 默认会认为MODE=production
NODE_ENV=test 默认会认为MODE=test
然而vue-cli的MODE可以设置成任意值例如一个项目需要部署10个城市的prodcution版本
那就这么写
例如北京,文件名env.beijing
MODE=beijing
NODE_ENV=production
#....其他VUE_APP_配置
例如北京,文件名env.shanghai
MODE=shanghai
NODE_ENV=production
#....其他VUE_APP_配置
对应的package.json
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"build:beijing":"vue-cli-service build --mode beijing",
"build:shanghai":"vue-cli-service build --mode shanghai"
},
然后就实现了各个城市打包不同的配置,而且都是production版本