Env环境变量
Zova 通过process.env
暴露环境变量,这些变量在构建时会被静态的替换掉
Zova 基于多维变量加载环境文件,从而提供更加灵活的配置机制,支持更复杂的业务场景
meta与.env文件
Zova 使用dotenv从env
目录中加载下列文件中的环境变量:
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 |
appMode
: 更多信息,参见 Commands List: Mode
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_MODE | mode |
META_FLAVOR | flavor |
META_APP_MODE | appMode |
NODE_ENV | 等于META_MODE |
应用
名称 | 说明 |
---|---|
APP_ROUTER_MODE | Vue Router: History Modes |
APP_ROUTER_BASE | Vue Router: base |
APP_PUBLIC_PATH | Vite: 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_URL | proxy target |
PROXY_API_PREFIX | proxy key |
SSR
参见:SSR
Mock
参见:Mock
动态环境变量
以下是根据运行环境动态设定的环境变量:
名称 | 说明 |
---|---|
SSR | 是否是SSR模式 |
DEV | 是否是开发环境 |
PROD | 是否是生产环境 |
CLIENT | 是否是客户端 |
SERVER | 是否是服务端 |