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 | 是否是服务端 |