我是否必须将 .env 文件添加到 React 项目的版本控制中?
Do I have to add .env file to versioning in react project?
我看过一些媒体博客和 Whosebug 的回答,我不应该将 .env
文件添加到版本控制中。
我很明白为什么需要这样做。
但是在处理 Reactjs 项目时呢?
Reactjs 用于前端,所有环境变量都是 public 即使它是为生产而捆绑的,任何人都可以使用网络浏览器阅读它。
我有 2 个 env 文件,.env.production
用于生产,.env.staging
用于暂存。环境变量值在构建时被放入捆绑版本。这些文件在所有其他团队成员中都是相同的。
实际上这些文件中根本没有秘密。
问题是:
我应该将这 2 个文件添加到版本控制中,还是必须手动将这些文件分发给其他团队成员?那为什么?
不,你不知道。 .env 文件应该以单独的方式放在服务器上。否则,任何可以访问您的源代码存储库的人都可以阅读甚至修改 .env 文件。
没有
首选方法是创建一个名为 .env.sample
的文件,这将包含所有具有随机值或没有值的键。克隆 repo 的任何开发人员都将了解 run/build 项目所需的 env_vars。
在团队内部,有一个秘密共享机制。有很多工具可以解决这个问题。
第一次克隆 repo 后,开发人员需要 运行 cp .env.sample .env
并从秘密管理器复制值。
确保将 .env
添加到 .gitignore
,这样就不会有人不小心将包含秘密的 .env
推送到存储库。
我看过一些媒体博客和 Whosebug 的回答,我不应该将 .env
文件添加到版本控制中。
我很明白为什么需要这样做。
但是在处理 Reactjs 项目时呢?
Reactjs 用于前端,所有环境变量都是 public 即使它是为生产而捆绑的,任何人都可以使用网络浏览器阅读它。
我有 2 个 env 文件,.env.production
用于生产,.env.staging
用于暂存。环境变量值在构建时被放入捆绑版本。这些文件在所有其他团队成员中都是相同的。
实际上这些文件中根本没有秘密。
问题是:
我应该将这 2 个文件添加到版本控制中,还是必须手动将这些文件分发给其他团队成员?那为什么?
不,你不知道。 .env 文件应该以单独的方式放在服务器上。否则,任何可以访问您的源代码存储库的人都可以阅读甚至修改 .env 文件。
没有
首选方法是创建一个名为 .env.sample
的文件,这将包含所有具有随机值或没有值的键。克隆 repo 的任何开发人员都将了解 run/build 项目所需的 env_vars。
在团队内部,有一个秘密共享机制。有很多工具可以解决这个问题。
第一次克隆 repo 后,开发人员需要 运行 cp .env.sample .env
并从秘密管理器复制值。
确保将 .env
添加到 .gitignore
,这样就不会有人不小心将包含秘密的 .env
推送到存储库。