配置

Umi 在 .umirc.tsconfig/config.ts 中配置项目和插件,支持 es6。一份常见的配置如下,

  1. export default {
  2. base: '/docs/',
  3. publicPath: '/static/',
  4. hash: true,
  5. history: {
  6. type: 'hash',
  7. },
  8. }

配置文件

推荐在 .umirc.ts 中写配置。如果配置比较复杂需要拆分,可以放到 config/config.ts 中,并把配置的一部分拆出去,比如路由。

两者二选一,.umirc.ts 优先级更高。

TypeScript 提示

如果你想在写配置时也有提示,可以通过 umi 的 defineConfig 方法定义配置,

  1. import { defineConfig } from 'umi';
  2. export default defineConfig({
  3. routes: [
  4. { path: '/', component: '@/pages/index' },
  5. ],
  6. });

配置 - 图1

本地临时配置

可以新建 .umirc.local.ts,这份配置会和 .umirc.ts 做 deep merge 后形成最终配置。

比如,

  1. // .umirc.ts
  2. export default { a: 1, b: 2 };
  3. // .umirc.local.ts
  4. export default { c: 'local' };

拿到的配置是:

  1. {
  2. a: 1,
  3. b: 2,
  4. c: 'local',
  5. }

注意:

  • config/config.ts 对应的是 config/config.local.ts
  • .local.ts 是本地验证使用的临时配置,请将其添加到 .gitignore务必不要提交到 git 仓库中
  • .local.ts 配置的优先级最高,比 UMI_ENV 指定的配置更高

多环境多份配置

可以通过环境变量 UMI_ENV 区分不同环境来指定配置。

举个例子,

  1. // .umirc.js
  2. export default { a: 1, b: 2 };
  3. // .umirc.cloud.js
  4. export default { b: 'cloud', c: 'cloud' };
  5. // .umirc.local.js
  6. export default { c: 'local' };

不指定 UMI_ENV 时,拿到的配置是:

  1. {
  2. a: 1,
  3. b: 2,
  4. c: 'local',
  5. }

指定 UMI_ENV=cloud 时,拿到的配置是:

  1. {
  2. a: 1,
  3. b: 'cloud',
  4. c: 'local',
  5. }