Sun*_*nny 4 file environment-variables
我.env
用 params 创建了文件,推送到 github,我的队友下载了 repo。在下一次推送中,我将.env
文件添加到.gitignore
. 现在我需要对.env
文件进行更改,但是如果.env
忽略的话他们将如何获取它。进行此类操纵的正确方法是什么?
更新:我使用两个库来管理环境变量: https://www.npmjs.com/package/dotenv https://www.npmjs.com/package/config
您不将配置的.env
文件存储在存储库中,而是创建.env.dist
(或类似名称的任何文件)作为模板文件,并提交该文件。您的.dist
文件可以包含所有注释掉的键,或所有键和默认值。这一切都取决于您,但您需要确保您的模板也不包含任何敏感数据:
DB_HOST=
DB_USER=
Run Code Online (Sandbox Code Playgroud)
主要好处是您没有.env
在存储库中,因此每个开发人员都可以根据自己的喜好/需要轻松设置自己的系统(即本地数据库等),并且不存在此类文件在下次拉取时意外覆盖的风险,这将是令人沮丧。
另外(再次),您不会在存储库中存储任何敏感数据,因此虽然您.env.dist
可以(甚至可能应该)预先配置为默认值,但您必须确保所有凭据留空,因此没有人可以运行针对生产机器的代码(或根据该文件找出任何敏感内容)。
根据您使用的开发环境,您可以.env
使用提供的.env.dist
模板自动创建文件(这对于 CI/CD 服务器很有用)。由于dotenv
文件非常简单,因此处理起来很容易。我自己为 PHP 编写了这样的辅助工具,但它的代码非常简单,并且可以根据需要轻松移植到任何其他语言。请参阅GitHub 上的process-dotenv以供参考。
最后,如果出于某种原因,您的项目中的配置设置很复杂,您可能需要创建额外的小脚本,该脚本可以收集所有数据并始终写入最新的配置文件(或升级现有的等)。