为什么 React 开发的 .env 文件中需要 REACT_APP 前缀?

sad*_*ada 4 reactjs create-react-app dotenv

https://create-react-app.dev/docs/adding-custom-environment-variables/中有一个声明 :

除 NODE_ENV 之外的任何其他变量都将被忽略,以避免意外暴露机器上可能具有相同名称的私钥。

在机器上公开可能具有相同名称的私钥是什么意思?我从这句话中什么也得不到。您能举例解释一下这个说法吗?先感谢您。

小智 6

正如文档中提到的,当您构建应用程序时,React 应用程序将在源代码中包含环境变量。

环境变量嵌入到构建中,这意味着任何人都可以通过检查应用程序的文件来查看它们。

想象一下,您有一个 React 前端和一个后端服务,两者都托管在同一台计算机上。还可以想象一下,您不小心引用了 React 应用程序中的一个环境变量,其中包含后端服务使用的一些秘密。现在这个秘密将在前端源代码中暴露给世界。

这就是为什么 React 应用程序使用的环境变量中添加了“故意详细”前缀。它迫使您明确要在前端公开的内容。

它是故意冗长的。否则,存在意外暴露机器上恰好具有相同名称的私钥的风险。

https://github.com/facebook/create-react-app/issues/865#issuecomment-252199527