【问题标题】:Why Do We Need REACT_APP Prefix in .env File for React Development?为什么我们需要在 .env 文件中使用 REACT_APP 前缀来进行 React 开发?
【发布时间】:2022-01-03 02:57:21
【问题描述】:

里面有一个说法 https://create-react-app.dev/docs/adding-custom-environment-variables/

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

在机器上公开可能具有相同名称的私钥是什么意思? 我从这句话中什么也得不到。你能用一个例子来解释这个说法吗? 提前谢谢你。

【问题讨论】:

标签: reactjs create-react-app dotenv


【解决方案1】:

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

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

想象一下,你有一个 React 前端和一个后端服务,它们都托管在同一台机器上。还假设您不小心引用了 React 应用程序中的环境变量,其中包含后端服务使用的一些秘密。现在该秘密将在前端源中向世界公开。

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

故意冗长。否则,有可能会意外暴露计算机上恰好具有相同名称的私钥。

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

【讨论】:

  • 你认为 React 前端和后端服务在同一个目录下,而我们在这个目录下只有一个 .env 文件吗?如果你这么认为,那么你是对的。 React App 可以通过键入 process.env.SECRET 来使用后端服务的密钥。如果它们不在同一个目录中并且 React App 没有 .env 文件,那么 React App 如何使用 process.env.SECRET?
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 2012-10-18
  • 2022-11-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 2013-07-07
  • 1970-01-01
相关资源
最近更新 更多