代码之家  ›  专栏  ›  技术社区  ›  skube

环境变量如何与盖茨比一起使用?

  •  1
  • skube  · 技术社区  · 6 年前

    在gatsbyjs的上下文中,应该如何使用环境变量?我已经阅读并重新阅读了 official docs 但我还是很困惑。

    明确地:

    • 加茨比吗 自动地 阅读 .env.development 做文件时 gatsby develop ?
    • 同样,它是否忽略了 .环境发展 文件并只读取 .env.production 什么时候做 gatsby build ?
    • 你要加吗 .环境发展 Env.生产 .gitignore ?
    • 你应该这样做吗 手动 复制(例如通过) scp ) .env.* 文件到服务器?
    1 回复  |  直到 6 年前
        1
  •  2
  •   Sarah    6 年前

    我用过 .env.development .env.production 文件,但不需要 dotenv 因为我不想把这些env变量放到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.生产 文件,在开发一中定义了一个变量,然后部署到生产环境中。在.env.production文件中未定义env变量。

    Q3) 嗯,这可能取决于你的回购协议。如果是公共的或私人的。以及文件的内容。如果您使用.env文件作为api URL等。没关系,但机密不应该在.env文件或repo中。

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

    也许这种方法对你更好 alternative config oliverbenns 评论