在GatsbyJS的上下文中,应该如何使用环境变量?我已经阅读并重新阅读了official docs,但仍然感到困惑。
特别是:
.env.development
时是否会自动读取gatsby develop
文件?.env.development
时忽略.env.production
文件而只读取gatsby build
吗?.env.development
和.env.production
添加到.gitignore
?scp
文件复制(例如通过.env.*
)到您的服务器?答案 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
评论