vue中的几个.env文件,用来处理某些情况下不同环境需要不同的值

比如:在某个商品在测试环境跳转的域名和正式环境跳转的域名就不同,这个时候就需要用到.env文件,这几个文件都放在package.json同目录下

.env: 网上是说无论开发环境还是生成环境都会加载,这里我没用到,就不描述了

.env.development: 本地开发环境(文件名也可以是.env.dev等,没有规定死)

NODE_ENV=development #这里的NODE_ENV都要有,本地环境取值developmen,非本地环境取值production(不造为啥)
VUE_APP_ENV = 'development' #这里要注意,打包的时候命令中的值是跟这里对应的,2边要一致
VUE_APP_SOCKET_BASE_URL=ws://192.168.x.xxx:8001 #这里就是不同环境对应的不同域名而已

.env.test: 测试环境

NODE_ENV=production #解释同上
VUE_APP_ENV = 'test' #解释同上
VUE_APP_SOCKET_BASE_URL=ws://58.60.110.xx:10006

.env.preview: 预生产环境

NODE_ENV=production #解释同上
VUE_APP_ENV = 'preview' #解释同上
VUE_APP_SOCKET_BASE_URL=wss://kh-cs.xxx.com:8002

.env.production: 生产环境

NODE_ENV=production #解释同上
VUE_APP_ENV = 'production' #解释同上
VUE_APP_SOCKET_BASE_URL=wss://kh.xxx.com:8002

解释:至于为什么在不同环境就会取到对应文件的变量就要跟package.json文件配置有关了

package.json文件中的scripts配置:

serve: npm run serve,会启动项目,默认加载.env.development

build: npm run build,打包,默认打包mode是production

下面2个是自定义的命令,不是项目配置文件自动生成的

build-test: npm run build-test,打包,这里指定了--mode test,这里的test就对应.env.xxx文件中的VUE_APP_ENV的值

build-pre: npm run build-test,同上

{
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build-test": "vue-cli-service build --mode test",
    "build-pre": "vue-cli-service build --mode preview",
    "lint": "vue-cli-service lint"
  }
}
Logo

前往低代码交流专区

更多推荐