dotenv-webpack是否将.env中的所有环境变量暴露给前端?

时间:2017-01-15 00:01:07

标签: javascript node.js webpack environment-variables

我正在构建一个应用程序,其中包含一些API的公钥和其他API的私钥。我想将所有这些内容存储在单个.env文件中,并使用dotenv为我的服务器提供私钥,dotenv-webpack为我的公共前端提供公钥JavaScript的。使用这个软件包是否可以在我的javascript中使用我的私钥,还是仅使用它需要的私钥?

示例:

# .env file
public_key="12345"
private_key="45678"

这个需要在前端访问

// javascript file on front end
var publicKey = process.env.public_key

但我想隐藏这一个

// javascript file in node.js
var privateKey = process.env.private_key

我正在考虑使用的包是这个: https://www.npmjs.com/package/dotenv-webpack

1 个答案:

答案 0 :(得分:4)

plugin的github页面指出:

  

dotenv-webpack包装了dotenv和Webpack.DefinePlugin。因此,它会覆盖现有的任何现有DefinePlugin配置。此外,与DefinePlugin一样,它在process.env的任何实例的结果包中进行文本替换。

     

您的.env文件可能包含敏感信息。因此,dotenv-webpack将仅在最终包中包含已定义的环境变量。

所以它的安全。它只会暴露您在代码中实际使用的环境变量。