首页 > 解决方案 > 是否可以将 dotenv 变量存储在 json 文件中?

问题描述

在 Ghost CMS 中使用 Gatsby 需要一个包含我的 API 密钥的 .ghost.json 文件。我想将 repo 推送到 Github 并且不希望我的密钥在我的存储库中。因此问题是:是否可以在 json 文件中使用 .env 变量?

标签: javascriptjsongatsbyghost-blogdotenv

解决方案


默认情况下,当您公开以下内容时,Gatsby 会在(或) 中查找.env变量:.env.development.env.production

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})

当然,您可以更改此行为。如果您想将变量保存在.json文件中而不推送它,只需使用函数将它们添加到.gitignore您需要的文件(或其他文件)中并将它们导入。使用,例如:.gatsby-config.jsrequirerequire('../../ghost.json')

因此,我建议使用默认配置以避免可能出现的问题。您可以在没有 API 密钥的情况下保持文件推送并将它们移动到.env本地文件,然后通过以下方式简单地加载您需要的位置:process.env.YOUR_API_KEY_VARIABLE

欲了解更多信息:https ://www.gatsbyjs.org/docs/environment-variables/


推荐阅读