运行时配置

icejs 提供了根据环境区分运行时配置的能力

设置环境

默认情况下支持 start/build 两个环境,对应的也是 icejs start/build 两个命令,开发者可以通过 --mode 参数来扩展环境:

  1. {
  2. "scripts": {
  3. "start": "icejs start --mode local",
  4. "build": "icejs build --mode local",
  5. "build:daily": "icejs build --mode daily",
  6. "build:prod": "icejs build --mode prod"
  7. }
  8. }

注意:如果你是阿里内部的开发者,我们对这个能力做了一些扩展,具体可参考文档:

按照这样配置之后即可在前端代码里拿到该配置:

  1. import { APP_MODE } from 'ice';
  2. // 默认情况是 start 或者 build
  3. console.log('APP_MODE', APP_MODE);

当然大多数时候你都不需要关心 APP_MODE 这个变量,只需要按照下面的约定方式配置即可。

根据环境配置

在区分好环境之后就可以在 src/config.ts 中配置每个环境的选项了:

  1. export default {
  2. // 默认配置
  3. default: {
  4. appId: '123',
  5. baseURL: '/api'
  6. },
  7. local: {
  8. appId: '456',
  9. },
  10. daily: {
  11. appId: '789',
  12. },
  13. prod: {
  14. appId: '101',
  15. }
  16. }

配置之后框架会自动根据当前环境将配置进行合并覆盖,在代码中使用合并后的 config:

  1. import { config } from 'ice';
  2. console.log(config.appId);