进阶配置
你可以通过在 Shell 内或使用 .env 文件设置环境变量来调整各种开发环境与生产环境设置。
注意:你不需要像使用自定义环境变量那样,在下列变量前加上
REACT_APP_
。
变量 | 开发环境 | 生产环境 | 作用 |
---|---|---|---|
BROWSER | ✅ 可用 | 🚫 不可用 | 默认情况下, Create React App 会打开默认的系统浏览器,macOS 上默认启用 Chrome。指定一个浏览器来覆盖该行为,或设定为 none 来完全禁用它。如果需要自定义浏览器启动方式,你可以指定一个 node 脚本作为替代。任何传递给 npm start 的参数也将被传递给这个脚本,你的应用程序 url 将会是最后一个参数。脚本的文件名必须存在 .js 扩展名。 |
BROWSER_ARGS | ✅ 可用 | 🚫 不可用 | 当指定 BROWSER 环境变量时,该环境变量所接收的任何参数都将传递给 browser 实例。支持以空格分割传入的多参数列表。默认情况下,不向浏览器传递任何参数。 |
HOST | ✅ 可用 | 🚫 不可用 | 默认情况下生产环境的 web 服务器会绑定设备商的所有主机名("localhost"、LAN 网络地址等)。你可以使用此变量来指定不同的主机。 |
PORT | ✅ 可用 | 🚫 不可用 | 默认情况下,生产环境 web 服务器会监听 3000 端口或提示你尝试下一个可用端口。你可以使用该变量来指定不同的端口。 |
HTTPS | ✅ 可用 | 🚫 不可用 | 当该选项设定为 true 时, Create React App 将以 https 模式运行开发服务器。 |
PUBLIC_URL | 🚫 不可用 | ✅ 可用 | Create React App 默认你的应用托管在 web 服务器的根目录,或在 package.json (homepage ) 中指定的子路径上。通常情况下, Create React App 会忽略主机名。你可以使用此变量强制将 asset 逐个引用到你提供的 url(包括主机名)。当使用 CDN 托管应用时,这个选项可能会很有用。 |
CI | ✅ 可用 | ✅ 可用 | 当这个值被设定为 true 时, Create React App 会将警告视为构建中产生的失败。这也使 test runner 未被监视。大多数 CI 默认启用此标志。 |
REACT_EDITOR | ✅ 可用 | 🚫 不可用 | 当应用程序在开发中崩溃时,你将会看到一个附带可点击堆栈进行追踪的错误。当你点击它时, Create React App 会根据当前正在运行的进程来判断你正在使用的编辑器,并调用它打开相关的源文件。你可以发一个 Pull request 来检测你选择的编辑器。设定此环境变量将会覆盖自动检测,如果你这样做了,请确保你的系统路径环境变量指向你的编辑器 bin 文件夹。你也可以将其置为 none 来完全禁用它。 |
CHOKIDAR_USEPOLLING | ✅ 可用 | 🚫 不可用 | 当其设定为 true 时,water 会运行在轮询模式中,这在 VM 中是必要的。如果 npm start 时未监测到修改,请使用此选项。 |
GENERATE_SOURCEMAP | 🚫 不可用 | ✅ 可用 | 当其设置为 false 时,不会为生产环境构建版本生成 source maps。这解决了一些小型机器内存不足(OOM)的问题。 |
NODE_PATH | ✅ 可用 | ✅ 可用 | 与 Node.js 中的 NODE_PATH 相同,但只允许使用相对路径文件夹。通过设置 NODE_PATH=src 可以方便的模拟 monorepo 设置。 |
INLINE_RUNTIME_CHUNK | 🚫 不可用 | ✅ 可用 | 默认情况下, Create React App 可以在生产环境运行时中将脚本嵌入至 index.html ,当这个值被设定为 false 时,脚本不会被嵌入,而是像往常一样被引入。在处理 CSP 时通常需要这么做。 |
IMAGE_INLINE_SIZE_LIMIT | 🚫 不可用 | ✅ 可用 | 默认情况下,小于 10,000 字节的图像将被转码为 base64 data URI,并内联在 CSS 或 JS 构建生成物中。对其进行设置从而以字节为单位改变大小限制。将其设定为 0 将会禁用图像内联。 |
EXTEND_ESLINT | ✅ 可用 | ✅ 可用 | 当其设定为 true 时,从 eslint-config-react-app 中继承的 ESLint 设置对 eslint-loader 可用。 |
TSC_COMPILE_ON_ERROR | ✅ 可用 | ✅ 可用 | 当其设定为 true 时,即使 TypeScript 类型检查抛出错误,项目也能被正常构建与运行。这些错误会在终端或浏览器控制台中作为警告打印。 |