Gatsby 如何使用环境变量?

How are Environment Variables used with Gatsby?

在 GatsbyJS 的上下文中,应该如何使用环境变量?我已经阅读并重新阅读 official docs,但我仍然感到困惑。

具体来说:

我使用了 .env.development.env.production 文件,但不需要 dotenv,因为我没有尝试将这些环境变量放入 node.js。我想要 JS 文件中的这些环境变量。

Q1) 是的。如果你在根目录下创建一个.env.development文件,添加这行代码IMG_URL=https://picsum.photos/200/300?image=1079,然后在你的JS中添加这行代码<img src={'${process.env.IMG_URL}'} alt="" />render(){}在你的一个反应组件中运行。然后gatsby develop,你会看到图片

Q2) 看来是的。我创建了 .env.development.env.production 文件,在开发文件中定义了一个变量,然后部署到生产环境。环境变量未在 .env.production 文件中定义。

Q3) 嗯,这可能取决于您的回购协议。如果它是 public 或私人的。以及文件的内容。如果您将 .env 文件用于 API URL 等。那很好,但是 Secrets 不应该在 .env 文件或 repo 中。

Q4) 我会说提交和部署通常是不同的。除非您在提交时设置了自动部署。我已将我的文件添加到我的 .gitignore,然后将我所有的本地文件复制到我的实时服务器。也许其他人对此有更好的答案。

也许这种方法更适合你alternative configoliverbenns评论