手写VUE后台管理系统9 - 多环境配置

vite 本身支持多环境配置,在一个特殊的 import.meta.env 对象上暴露环境变量

在生产环境中,这些环境变量会在构建时被静态替换,因此,在引用它们时请使用完全静态的字符串。动态的 key 将无法生效。例如,动态 key 取值 import.meta.env[key] 是无效的。

内建环境变量

  • import.meta.env.MODE:{string} 应用运行的模式。
  • import.meta.env.BASE_URL:{string} 部署应用时的基本 URL。他由base 配置项决定。
  • import.meta.env.PROD:{boolean} 应用是否运行在生产环境。
  • import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与import.meta.env.PROD相反)。

.env 文件

如果还有更多的环境变量需要定义,可以通过 .env 文件自行定义

.env                # 所有情况下都会加载
.env.local          # 所有情况下都会加载,但会被 git 忽略
.env.[mode]         # 只在指定模式下加载
.env.[mode].local   # 只在指定模式下加载,但会被 git 忽略

为防止意外地将一些环境变量泄漏到客户端,环境变量必须以 VITE_ 为前缀。

例如下面这个文件

DB_PASSWORD=foobar
VITE_SOME_KEY=123

只有 import.meta.env.VITE_SOME_KEY 可以正常获取到环境变量,而 DB_PASSWORD 则不行。

智能提示

.env 文件中自定义的环境变量,如果想要在 ide 编码时获得智能提示,可以在 src 目录下创建一个 env.d.ts 文件,按下面的格式增加 ImportMetaEnv 的定义

使用 vite 创建的 vue 项目中自带了这个文件,文件名为 vite-env.d.ts

/// <reference types="vite/client" />

interface ImportMetaEnv {
  readonly VITE_APP_TITLE: string
  // 更多环境变量...
}

interface ImportMeta {
  readonly env: ImportMetaEnv
}

模式

前面介绍的 .env 文件中,还有一个 .env.[mode] 的文件,其中的 mode 就是这里说的模式,与 java 中的 profile 基本一个意思。

vite                   # development 模式
vite dev               # development 模式
vite serve             # production 模式
vite build             # production 模式

也可以通过 --mode 选项自定义模式

vite build --mode uat

如果同一个变量在 .env 中都进行了定义,.env.[mode] 文件内定义的变量优先级高于 .env 文件内定义的变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值