处理env文件的最佳方法是什么?

问题描述 投票:0回答:2

我在项目根目录下有.env文件。

我该如何处理dev,qa,stage和prod的.env文件?

  • 应该将它们包含在git repo中吗?如果不是我把它们放在哪里?例如外部驱动器上的不同文件夹?
  • 什么是正确的扩展? .env.qa.qa.env
  • 如果我想使用webpack将我的包构建到dist文件夹(服务器端),我应该包含env文件还是手动将其复制到dist文件夹?
node.js webpack environment-variables
2个回答
1
投票

您不应该将env文件签入任何源代码控制。任何有权访问回购的人都可以永久使用这些秘密,直到重写历史记录以删除它们为止。

例如,如果您使用AWS服务,我建议使用Secrets Manager

引入Webpack的任何环境变量都不应该是秘密,而应该是配置值。任何可以查看源的人都可以读取这些值。如果您需要具有特定于环境的配置,Webpack DefinePlugin将使用以下配置将值替换为MY_API_HOST等变量:

const plugins = [
  new webpack.DefinePlugin({
    MY_API_HOST: JSON.stringify('https://my-domain.com/api/'),
    MY_API_VERSION: JSON.stringify('v2')
  })
]

0
投票

配置模块是一种简单的方法来解决不同的env特定值。在 - https://www.npmjs.com/package/config上阅读有关配置模块的信息。你将在存储库中有一个带有env特定文件的配置文件夹,我喜欢这种方法,因为文件在存储库中但很好地分开。这提供了一种非常简单的方法来设置默认值,覆盖环境特定值等。它是通过设置适当的节点环境变量(导出NODE_ENV =开发或接受或生产)来使用不同的环境特定文件也非常方便。

© www.soinside.com 2019 - 2024. All rights reserved.