我正在玩Webpack并使用ENV变量。
到目前为止,我一直担心的一个问题是,我仍然可以在存储库或代码本身中看到变量。这是我尝试过的:
使用 dotenv-webpack ,我可以使用.env
文件,可以将它们从版本控制中隐藏(这很好),但是不利的是,如果我查看捆绑软件的话。 js文件,我可以搜索它们并仍然看到它们。即使我已经将webpack设置为正式生产,这也让我觉得有什么意义?
使用 webpack.EnvironmentPlugin ,我可以将ENV存储在webpack.config.js文件中,而我不在我的bundle.js文件中看到它们,但是在Webpack中.config.js文件是我的版本控制-唯一的解决方法是创建私有存储库。
我知道,如果某些敏感的情况,使用私有存储库总会更好,但是我正在尝试查看是否丢失了当前配置。
在我的脑海中,我想可以创建一个.env文件,并且不在我的生产代码中显示它,而不管我的回购是否私有。我认为这是错误的吗?
我想念什么?
额外 我确实看到了this post on Github,但对我来说仍然提出了能够在版本控制端看到ENV变量的问题?
答案 0 :(得分:1)
(修订)
假设您不想在存储库中公开配置值。 (在这种情况下,答案是不是版本控制的环境文件)。可能是:
对于任何一种配置,env文件都是不错的选择。
您需要在捆绑的Web应用程序中拥有其中的一些信息;客户端Web应用程序将需要一个实际的Google Maps API密钥才能使地图正常工作(因此,使用您的Web应用程序的任何人都可以在您的捆绑包中找到它)。 dotenv-webpack
在这里帮助您将环境文件中的信息放入JS包中。如果用户没有看到值,就无法在Web应用程序中使用env属性的值。
其他信息不应暴露给您的Web应用程序用户-数据库连接的用户名/密码就是一个例子;您仍然可以将它们保存在env文件中,但不要将其捆绑在网络应用程序中。如果需要,您仍可以在使用Webpack 构建应用程序时使用它们,但不要将它们注入捆绑中-对于dotenv-webpack
,这意味着不引用它们在您的代码中添加process.env.SOME_VAR
。