5 模式和环境变量 – Vue CLI

1 三种模式

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

当运行 vue-cli-service 命令时,所有的环境变量都从对应的环境文件中载入。如果文件内部不包含 NODE_ENV 变量,它的值将取决于模式,例如,在 production 模式下被设置为 “production”,在 test 模式下被设置为 “test”,默认则是 “development”。

如果你想要在构建命令中使用开发环境变量,需要使用–mode参数,例如:

vue-cli-service build --mode development

2 环境变量

在项目根目录中新建下列文件来指定环境变量文件

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

环境文件的内容格式只允许包含环境变量的“键=值”对,例如:

// .env.dev
VUE_APP_ENV=dev
NODE_ENV=development
# 默认base地址
VUE_APP_API_BASE=https://api-xxx.com

3 在客户端侧代码中使用环境变量

在环境文件中,以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在项目的代码中这样访问它们:

console.log(process.env.VUE_APP_SECRET)

除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量:

NODE_ENV - 会是 "development"、"production" 或 "test" 中的一个。具体的值取决于应用运行的模式。
BASE_URL - 会和 vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径。

所有解析出来的环境变量都可以在 public/index.html 中以 HTML 插值中介绍的方式使用。

在 vue.config.js 文件中计算环境变量。它们仍然需要以 VUE_APP_ 前缀开头。这可以用于版本信息:

// vue.config.js
process.env.VUE_APP_VERSION = require('./package.json').version

module.exports = {
  // config
}

4 只在本地有效的变量

.local结尾的本地环境文件默认会被忽略,且出现在 .gitignore 中。比如 .env.development.local 将会在 development 模式下被载入,且被 git 忽略。

本站文章如未注明均为原创 | 文章作者:刘晓帆 | 转载请注明来自:前端印象

发表评论

邮箱地址不会被公开。 必填项已用*标注

浏览量:89 次浏览