Config配置
meta与config文件
Zova 从src/front/config/config目录中加载 config 文件。同样支持基于meta条件的文件加载,具体规则参见:meta与.env文件
举例
在命令行执行npm run dev,那么,对应的 meta 变量值是:
| 名称 | 值 |
|---|---|
| mode | 'development' |
| flavor | 'admin' |
| appMode | 'ssr' |
系统就会自动加载下列文件中的 Config 配置,并进行合并:
txt
config.ts
config.admin.ts
config.admin.development.ts
config.admin.development.ssr.ts
config.mine.ts
config.admin.mine.ts
config.admin.development.mine.ts
config.admin.development.ssr.mine.ts访问全局config
在任何 bean 实例中可以直接通过this.app.config访问全局 config 对象
typescript
export class StoreApi {
private [SymbolApi]: AxiosInstance;
protected async __init__() {
const baseURL = `${this.app.config.api.baseURL || ''}${this.app.config.api.prefix || ''}/`;
this[SymbolApi] = markRaw(axios.create({ baseURL }));
}
}访问模块config
模块可以单独提供自己的 config 配置,可以通过 Scope 实例获取模块的 config 配置,参见:Config配置
覆盖模块config
可以使用项目级别的 config 配置覆盖模块级别的 config 配置,参见:Config配置
env与config的关系
有些变量同时存在于 env 和 config 中,基本逻辑如下:
- 在 env 中配置变量的值
- 让 config 中的值等于 env 中的值
- 在代码中优先通过 config 来访问变量的值
- 如果需要使用构建时 tree shaking 的能力,就通过
process.env.xxx来访问变量的值
变量对照表
| env中的变量 | config中的变量 |
|---|---|
| META_MODE | meta.mode |
| META_FLAVOR | meta.flavor |
| META_APP_MODE | meta.appMode |
| APP_ROUTER_MODE | env.appRouterMode |
| APP_ROUTER_BASE | env.appRouterBase |
| APP_PUBLIC_PATH | env.appPublicPath |
| APP_NAME | env.appName |
| APP_TITLE | env.appTitle |
| APP_VERSION | env.appVersion |
| API_BASE_URL | api.baseURL |
| API_PREFIX | api.prefix |
| API_JWT | api.jwt |