.env 和环境变量

如何配置

比如要

# OS X, Linux
$ PORT=3000 umi dev

# Windows (cmd.exe)
$ set PORT=3000&&umi dev

# Or use cross-env for all platforms
$ yarn add cross-env --dev
$ cross-env PORT=3000 umi dev

# .env
$ echo PORT=3000 > .env

环境变量

UMI_ENV

指定覆盖默认配置的配置文件。比如 UMI_ENV=prod umi build,那么则会用 .umirc.prod.js 覆盖 .umirc.js。或者是 config/config.prod.js 覆盖 config/config.js。注意是覆盖而不是替换,.umirc.prod.js 中没有的配置者会使用 .umirc.js 中的配置。

另外,开发模式下 .umirc.local.js 或者 config/config.local.js 中的配置永远是优先级最高的。

PORT

指定端口号,默认是 8000。比如:

$ PORT=8001 umi dev

BASE_PORT

指定基础端口号,umi 会基于这个值去寻找可用的端口号,默认是 8000。比如:

$ BASE_PORT=8001 umi dev

HOST

默认是 0.0.0.0

ESLINT 2.4.0+

有值时在 dev 和 build 命令里会通过 eslint-config-umi 做基础的 eslint 校验,避免一些低级错误。

APP_ROOT

WARNING

APP_ROOT 不能配在 .env 里。

指定项目根目录。比如:

$ APP_ROOT=src/renderer umi dev

ANALYZE

默认关闭。分析 bundle 构成,build 时有效。比如:

$ ANALYZE=1 umi build

ANALYZE_SSR

默认关闭。分析 umi.server.js 构成,ssr build 时有效。比如:

$ ANALYZE_SSR=1 umi build

ANALYZE_MODE

默认为 server. 若开启 ANALYZE,且选择了 server 模式,会启动一个 HTTP server 展示 webpack bundle 报告。如果是 disabled,只会生成 stats 文件

# 只生成 stats 文件
$ ANALYZE=1 ANALYZE_MODE=disabled umi build

# 启动 HTTP 服务展示 webpack bundle 报告
$ ANALYZE=1 ANALYZE_MODE=server umi build

ANALYZE_REPORT

默认关闭。分析 bundle 构成并生成报告文件 (默认 bundlestats.json ),供手工分析或可视化用。比如:

$ ANALYZE_REPORT=1 umi build

与开启 ANALYZE 并指定 ANALYZE_DUMP 后生成的 stat 文件不同,ANALYZE 会直接将 [ Webpack Stat 数据转存成目标文件,而 ANALYZE_REPORT 会先对 Webpack Stat 进行解析与裁剪,把可以直接用于分析与可视化的报告数据生成报告文件。

这样做的好处是,我们可以得到更小(仅有 stat 文件 1% 大小)的数据文件。

SPEED_MEASURE

默认关闭。分析各个 plugin 和 loader 的耗时。比如:

# 将分析信息在控制台输出
$ SPEED_MEASURE=CONSOLE umi build

# 将分析信息保存到 node_modules/speed-measure.json
$ SPEED_MEASURE=JSON umi build

ANALYZE_PORT

ANALYZE 服务器端口,默认 8888。

BABEL_POLYFILL 2.2.0+

默认引入 @babel/polyfill,值为 none 时不引入。比如:

$ BABEL_POLYFILL=none umi build

COMPRESS

默认压缩 CSS 和 JS,值为 none 时不压缩,build 时有效。比如:

$ COMPRESS=none umi build

CSS_COMPRESS

默认压缩,值为 none 时不压缩,build 时有效。因为 css 压缩有时是会有问题的,而且压缩并不能减少多少尺寸,所以有时可以压 JS 而不压 CSS。

BROWSER

默认自动开浏览器,值为 none 时不自动打开,dev 时有效。比如:

$ BROWSER=none umi dev

CLEAR_CONSOLE

默认清屏,值为 none 时不清屏。

CLEAR_OUTPUT

默认情况下,输出目录会在每次构建之前被清除,当此值为 none 时则不会执行此操作。

HMR

默认开启 HMR,值为 none 时禁用,值为 reload 时文件有变化时刷新浏览器。

BABELRC

开启 .babelrc 解析,默认不解析。

BABEL_CACHE

默认开启 babel cache,值为 none 时禁用。比如:

$ BABEL_CACHE=none umi dev

MOCK

默认开启 mock,值为 none 时禁用。比如:

$ MOCK=none umi dev

HTML

默认打包 HTML 文件,值为 none 时不打包 HTML 文件。比如:

$ HTML=none umi build

WATCH_FILES

RM_TMPDIR

FORK_TS_CHECKER

默认不开启 TypeScript 检查,值为 1 时启用。比如:

$ FORK_TS_CHECKER=1 umi dev