Gatsby如何使用环境变量?

时间:2018-07-24 11:25:31

标签: environment-variables provisioning gatsby

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

特别是:

  • Gatsby在执行.env.development时是否会自动读取gatsby develop文件?
  • 是否类似地,它会在执行.env.development时忽略.env.production文件而只读取gatsby build吗?
  • 您是否应该将.env.development.env.production添加到.gitignore
  • 您是否应该手动scp文件复制(例如通过.env.*)到您的服务器?

1 个答案:

答案 0 :(得分:2)

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

问题1)是。如果您在根目录中创建一个.env.development文件,请添加这行代码IMG_URL=https://picsum.photos/200/300?image=1079,然后在您的JS中的<img src={'${process.env.IMG_URL}'} alt="" />函数中添加此行代码render(){}。您的反应组件之一。然后gatsby develop,您将看到图像

第二季度)是的。我创建了.env.development.env.production文件,在开发人员中定义了一个变量,然后将其部署到生产环境中。 env变量未在.env.production文件中定义。

Q3)嗯,这可能取决于您的仓库。是公共的还是私人的。以及文件的内容。如果您将.env文件用于API URL等,那很好,但是秘密不应该位于.env文件或存储库中。

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

也许这种方法可能对您更好alternative config转到oliverbenns评论