config prod,config stage和keys文件是好的做法吗?

时间:2019-06-30 13:16:53

标签: node.js github configuration

我正在使用配置文件存储默认值和密码/令牌/密钥。 默认值是公开的没问题。 显然,我希望密码保持机密。 我的意思是-不要将其推送到GitHub。

我考虑过要制作一个包含以下文件的 configs 目录:

common.js每个人都可以看到。 keys.js个密码/令牌/密钥。不应该推送到GitHub-使用.gitignore文件来防止这种情况。 keys-placeholder.js应该只包含占位符,因此克隆项目的人应该了解如何创建keys.js文件并放置其真实密码。

这是一个好习惯吗?您如何隐藏密码以免推送到GitHub并在首次构建项目时使它易于使用?

1 个答案:

答案 0 :(得分:1)

我个人使用config来配置公共应用程序/常量,并使用.env文件和dotenv包来获取机密。

然后在.env中添加.gitignore

所以示例项目应该是

config // app configuration/constants
 - prod.json
 - dev.json
 - test.json
.env // secrets
src/
 - models
 - app.js
 ...

-----添加了-----

为什么不将配置放在src目录中?

A:当然,将config文件夹放在哪里完全取决于您。 这只是一个偏好问题。

关于暂存配置呢?

A:与问题#1一样,您可以在staging.json下添加config

如果您没有为.env提供任何占位符文件,我怎么知道我应该在该文件中填写哪些密码?

A:典型的.env文件如下所示。

API_CREDENTIAL=your api credentials
DB_PASSWORD=your db password

如何将prod / dev配置文件延迟加载到节点应用程序?

A:我看不到延迟加载小型json文件的好处。 如果您要询问具体的configdotenv库指南, 请参阅其Github存储库。(configdotenv