【问题标题】:Do I have to add .env file to versioning in react project?我是否必须将 .env 文件添加到反应项目中的版本控制?
【发布时间】:2020-10-23 19:16:18
【问题描述】:

我看过一些中型博客和 StackOverflow 答案,我不应该将 .env 文件添加到版本控制中。

我很理解为什么需要这样做。

但是在处理 Reactjs 项目时呢?

Reactjs 用于前端,所有环境变量都是公开的,即使它被捆绑用于生产,任何人都可以使用 Web 浏览器阅读它。

我有 2 个 env 文件,.env.production 用于生产,.env.staging 用于暂存。环境变量值在构建时被放入捆绑版本。这些文件在所有其他团队成员中都是相同的。

其实这些文件里根本没有秘密。

问题是:

我应该将这 2 个文件添加到版本控制中,还是必须手动将这些文件分发给其他团队成员?那为什么呢?

【问题讨论】:

  • .env 不应该签入你的 repo 如果你的存储库是公开的。关键是它将向他人公开(应该是什么)内部信息。但是如果你有一个私有的 Git 存储库,那么就没有问题。您的项目是前端还是后端并不重要,也不重要您使用什么技术。

标签: reactjs version-control environment-variables


【解决方案1】:

不,你没有。 .env 文件应单独放在服务器上。否则任何可以访问您的源代码存储库的人都可以读取甚至修改 .env 文件。

【讨论】:

  • 如果随机的人可以修改你的整个存储库,那么我会说你有比 .env 文件更大的问题。首先您的整个应用程序不再安全。通过对存储库的适当监督,无论其中的文件如何,您都应该实施它,持有 .env 不是问题。至少在修改方面——是的,你仍然不想公开它。
【解决方案2】:

没有。

首选方法是创建一个名为.env.sample 的文件,其中包含所有随机或没有值的键。任何克隆 repo 的开发人员都会了解运行/构建项目所需的 env_vars。

在团队内部,有一个秘密共享机制。有很多工具可以解决这个问题。

第一次克隆 repo 后,开发人员需要运行 cp .env.sample .env 并从密钥管理器中复制值。

确保将.env 添加到.gitignore,这样不会有人意外将包含机密的.env 推送到repo。

【讨论】:

    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2017-04-24
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多