我最近为我的 Gatsby 应用配置了 Gatsby Cloud,github 集成和预览似乎非常有用。 我之前使用 circleci 进行生产构建并部署到 aws。我以前没有部署开发版本的暂存站点。
我将我的生产环境变量添加到环境变量设置的
Build
部分。然后我将我的开发环境变量添加到 Preview
部分。
无论我在 gatsby-config.js 中配置什么,GC 使用的构建过程自动默认为我的 PR 构建的生产。不幸的是,文档中没有这方面的信息。
gatsby-config.js:
let activeEnv = process.env.GATSBY_IS_PREVIEW ? "development" : process.env.NODE_ENV || "development";
require("dotenv").config({
path: `.env.${activeEnv}`,
});
console.log(`** Build Env: '${activeEnv}'`);
console.log("** BACKEND URL:", process.env.GRAPHQL_URL);
我看到在 PR 构建过程中为
activeEnv
记录了“开发”,这是我所期望的。 dotenv 技术上应该加载.env.development
,但它并没有以开发GRAPHQL_URL
url 结束。
process.env.GRAPHQL_URL
始终作为 .env.production 中的值注销