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