我的项目根目录中有.env
个文件。
我应该如何处理开发,质量保证,阶段和产品的.env
文件?
.env.qa
还是.qa.env
?webpack
将分发包构建到dist文件夹(服务器端),我应该添加env
文件还是手动将其复制到dist
文件夹?答案 0 :(得分: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')
})
]
答案 1 :(得分:0)
Config模块是解决不同env特定值的简便方法。在-https://www.npmjs.com/package/config上了解有关配置模块的信息。您将在存储库中拥有一个带有env特定文件的config文件夹,我喜欢这种方法,因为这些文件位于存储库中,但分隔得很好。这提供了一种非常简单的方法来设置默认值,覆盖环境特定的值等。通过设置适当的节点环境变量(export NODE_ENV =开发或接受或生产),使用不同的环境特定文件也非常方便。