# .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

注意

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 时文件有变化时刷新浏览器。

# ERROR_OVERLAY

默认开启 ERROR_OVERLAY,值为 none 时禁用,禁用后则react-error-overlay不会弹出错误遮罩层。

# 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

# USE_PUBLIC_IP

默认不绑定公网IP,值为 true 时允许绑定公网IP。比如:

$ USE_PUBLIC_IP=true umi dev