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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理env文件的最佳方法是什么?相关的知识,希望对你有一定的参考价值。

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

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

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

您不应该将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')
  })
]
另一答案

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

以上是关于处理env文件的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

iphone / Objective c的最佳代码片段网站是啥[重复]

避免android片段中内存泄漏的最佳方法是啥

为依赖于环境变量的代码编写规范的最佳方法是什么?

在 SwiftUI 中装饰文本片段的最佳方法是啥?

METAL顶点/片段着色器“拦截”结果的最佳方法

Android在片段中动态更改部分布局的最佳方法