这个是基于 vue/cli 脚手架的。文档
挑重点说一说,其他的去看文档就行了

根目录中的下列文件来指定环境变量

.env                # 在所有的环境中被载入
.env.local          # 在所有的环境中被载入,但会被 git 忽略
.env.[mode]         # 只在指定的模式中被载入
.env.[mode].local   # 只在指定的模式中被载入,但会被 git 忽略

一个环境文件只包含环境变量的“键=值”对:

FOO=bar
VUE_APP_SECRET=secret

被载入的变量将会对 vue-cli-service 的所有命令、插件和依赖可用。

这几个模式什么情况会被调用

默认情况下,一个 Vue CLI 项目有三个模式:

development 模式用于 vue-cli-service serve
production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e
test 模式用于 vue-cli-service test:unit

但是我们一般不这么做,因为我们可能不会将test作为单元测试模式,我们分三个环境,本地测试环境(develop),线上测试环境(test),线上正式环境(production):

// .env.development
NODE_ENV=development
BRANCH=development

VUE_APP_ENV=development

// .env.test
NODE_ENV=production
BRANCH=test

VUE_APP_ENV=test

// .env.production
NODE_ENV=production
BRANCH=master

VUE_APP_ENV=production

// package.json
{
  "scripts": {
    "serve": "vue-cli-service serve",
    "debug:test": "vue-cli-service serve --https",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint",
    // 这个其实加不加都行,因为默认build的模式就是production
    "build:master": "vue-cli-service build --mode production",
    // 我们这里改变了build:test的模式为test
    "build:test": "vue-cli-service build --mode test",
    "commit": "git add . && npx git-cz",
    "dev": "npm run serve",
    "dll": "webpack --config ./webpack.dll.js",
    "precommit": "lint-staged",
    "release": "standard-version"
  }
}

只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。
console.log(process.env.VUE_APP_SECRET)

注意

env 中的变量需要加上 VUE_APP_ 前缀。

Logo

前往低代码交流专区

更多推荐