Skip to content

Env环境变量

Zova 通过process.env暴露环境变量,这些变量在构建时会被静态的替换掉

Zova 基于多维变量加载环境文件,从而提供更加灵活的配置机制,支持更复杂的业务场景

meta与.env文件

Zova 使用dotenvenv目录中加载下列文件中的环境变量:

txt
.env                # 所有情况下都会加载
.env.[meta]         # 只在指定条件下加载
.env.mine           # 所有情况下都会加载,但会被 git 忽略
.env.[meta].mine    # 只在指定条件下加载,但会被 git 忽略
  • [meta]可以是以下三个字段值的任意组合,从而支持基于多维变量的加载机制
名称类型
mode'development' | 'production' | string;
flavor'front' | 'admin' | string;
appMode'spa' | 'ssr' | 'pwa' | 'cordova' | 'capacitor' | 'electron' | 'bex' | string

npm scripts

与多维变量相对应,命令行运行脚本也相应地分为三个部分,比如:

bash
$ npm run dev:ssr:admin
$ npm run build:ssr:admin

为了方便起见,我们把最常用的脚本设为别名即可,比如:

json
"scripts": {
  "dev": "npm run dev:ssr:admin",
  "build": "npm run build:ssr:admin",
  "preview": "npm run preview:ssr",
  "dev:ssr:admin": "npm run prerun && quasar dev --mode ssr --flavor admin",
  "build:ssr:admin": "npm run prerun && quasar build --mode ssr --flavor admin",
  "preview:ssr": "concurrently \"cd ./distMockServer && node index.js\" \"node ./dist/ssr/index.js\"",
},

举例

在命令行执行npm run dev,那么,对应的 meta 变量值是:

名称
mode'development'
flavor'admin'
appMode'ssr'

系统就会自动加载下列文件中的环境变量,并进行合并:

txt
.env
.env.admin
.env.admin.development
.env.admin.development.ssr
.env.mine
.env.admin.mine
.env.admin.development.mine
.env.admin.development.ssr.mine

内置环境变量

为了进一步实现开箱即用的效果,Zova 提供了若干内置的环境变量:

meta

名称说明
META_MODEmode
META_FLAVORflavor
META_APP_MODEappMode
NODE_ENV等于META_MODE

应用

名称说明
APP_ROUTER_MODEVue Router: History Modes
APP_ROUTER_BASEVue Router: base
APP_PUBLIC_PATHVite: Public Base Path
APP_NAME应用名称
APP_TITLE应用标题
APP_VERSION应用版本

开发服务

名称说明
DEV_SERVER_HOST开发服务的host Vite: server.host
DEV_SERVER_PORT开发服务的port

构建

名称说明
BUILD_OUTDIR指定输出目录
BUILD_MINIFY是否最小化
BUILD_ANALYZE是否显示分析信息

套件/模块

名称说明
PROJECT_DISABLED_MODULES禁用的模块清单
PROJECT_DISABLED_SUITES禁用的套件清单

API

名称说明
API_BASE_URL
API_PREFIX
API_JWT是否启用JWT

PINIA

名称说明
PINIA_ENABLED是否启用Pinia

Proxy

名称说明
PROXY_API_ENABLED是否启用proxy:Vite: server.proxy
PROXY_API_BASE_URLproxy target
PROXY_API_PREFIXproxy key

SSR

参见:SSR

Mock

参见:Mock

动态环境变量

以下是根据运行环境动态设定的环境变量:

名称说明
SSR是否是SSR模式
DEV是否是开发环境
PROD是否是生产环境
CLIENT是否是客户端
SERVER是否是服务端

基于 MIT 许可发布