环境变量
Gatsby 内置支持将环境变量加载到浏览器和函数中。将环境变量加载到 Node.js 中需要一个小的代码片段。
在开发环境中,Gatsby 将从名为 .env.development 的文件中加载环境变量。对于构建,它将从 .env.production 加载。
.env 文件可能如下所示
要将这些加载到 Node.js 中,请将以下代码片段添加到 gatsby-config.js 文件的顶部
这会加载 process.env.GATSBY_API_URL 和 process.env.API_KEY 以供 gatsby-*.js 文件和函数使用。
例如,在 gatsby-config.js 中配置插件时
在浏览器中访问环境变量。
默认情况下,环境变量仅在 Node.js 代码中可用,并且在浏览器中不可用,因为某些变量应保密,不应暴露给访问网站的任何人。
要在浏览器中公开变量,您必须在其名称前加上 GATSBY_。因此 GATSBY_API_URL 将在浏览器代码中可用,而 API_KEY 则不会。
变量在 JavaScript 编译时设置,因此在启动开发服务器或构建您的网站时设置。
将 .env* 文件添加到 .gitignore
环境变量文件不应提交到 Git,因为它们通常包含不安全添加到 Git 的敏感信息。相反,将 .env.* 添加到您的 .gitignore 文件中,并在 Gatsby Cloud 和本地手动设置环境变量。
Gatsby Cloud 上的环境变量
在 Gatsby Cloud 中,您可以在每个站点的“站点设置”中配置环境变量。您可以阅读更多关于 在 Gatsby Cloud 中管理环境变量 和 Gatsby Cloud 特有的环境变量 的信息。
附加环境(暂存、测试等)
您可以通过自定义 dotenv 的 path 配置来创建除 development 和 production 之外的附加环境。例如,要添加暂存环境,您可以像这样运行 Gatsby 构建命令:
STAGING=true gatsby build
然后在您的 gatsby-config.js 文件中
保留的环境变量
您无法覆盖某些内部使用的环境变量
NODE_ENVPUBLIC_DIR
Gatsby 还允许您在运行本地开发服务器时(例如 npm run develop)指定另一个环境变量
ENABLE_GATSBY_REFRESH_ENDPOINT
这允许您刷新已获取的内容。请参阅 刷新内容。
Gatsby 会根据操作系统报告的物理 CPU 数量,在 gatsby build 期间检测最佳 CPU 核心使用级别。对于在虚拟环境中运行的构建,您可能需要使用 GATSBY_CPU_COUNT 环境变量来调整工作并行级别。请参阅 多核构建。