Javascript 理解React JS中的.env文件和环境变量

Javascript 理解React JS中的.env文件和环境变量,javascript,node.js,reactjs,variables,environment-variables,Javascript,Node.js,Reactjs,Variables,Environment Variables,我对web开发领域还比较陌生,现在我正试图了解React JS中.env文件的用法。因此,我阅读了多篇文章,并观看了一些解释视频。然而,他们中的大多数人关注的是如何使用它,而不是它实际上是什么。我是否正确理解使用环境变量的主要好处是: 1) 由于应用程序都存储在一个文件.env 2) 它们对用户不可见,也不会显示并上载到Git存储库 是否正确,还有什么需要考虑的吗?用法 环境(.env)变量用于存储敏感信息,或者顾名思义,用于存储以环境为中心的信息(实时、开发、调试等) .env文件也保存在.g

我对web开发领域还比较陌生,现在我正试图了解React JS中
.env
文件的用法。因此,我阅读了多篇文章,并观看了一些解释视频。然而,他们中的大多数人关注的是如何使用它,而不是它实际上是什么。我是否正确理解使用环境变量的主要好处是:

1) 由于应用程序都存储在一个文件
.env
2) 它们对用户不可见,也不会显示并上载到Git存储库

是否正确,还有什么需要考虑的吗?

用法 环境(.env)变量用于存储敏感信息,或者顾名思义,用于存储以环境为中心的信息(实时、开发、调试等)

.env
文件也保存在
.gitignore
中,因此它不会被推送到任何存储库中

跟踪变量
.env.example
是一个未保存在
.gitignore
中的文件,但其他开发人员需要知道如何以及如何将内容放入他们的
.env
中。它看起来像这样:

.env.示例:

REACT_APP_STRIPE_KEY=
MY_SECRET_KEY=
THIS=
FOO=
BAR=
基本上是
.env
的一个空示例。然后在
.env
文件中复制并填充真实值,该文件仅对该计算机上的开发人员可用,并由脚本本地读取,然后脚本知道以何种模式启动应用程序、连接到何种数据库、使用何种密码等。

用法 环境(.env)变量用于存储敏感信息,或者顾名思义,用于存储以环境为中心的信息(实时、开发、调试等)

.env
文件也保存在
.gitignore
中,因此它不会被推送到任何存储库中

跟踪变量
.env.example
是一个未保存在
.gitignore
中的文件,但其他开发人员需要知道如何以及如何将内容放入他们的
.env
中。它看起来像这样:

.env.示例:

REACT_APP_STRIPE_KEY=
MY_SECRET_KEY=
THIS=
FOO=
BAR=

基本上是
.env
的一个空示例。然后在
.env
文件中复制并填充真实值,该文件仅对该计算机上的开发人员可用,并由脚本本地读取,然后脚本知道以什么模式启动应用程序,连接到什么数据库,使用什么密码等

它们可用于在源代码中存储不属于状态或作为声明(deep)的站点范围的值和设置

需要知道的重要一点是,要使用react,它们必须从
react\u APP\u
开始。这是因为环境是一个nodejs环境,nodejs将声明所有变量,除非它们以
REACT\u APP\uu

REACT\u APP\u
开头的环境变量在构建期间嵌入到应用程序代码中

不要将任何机密(如私钥)存储为
REACT\u APP\u
变量!这将在JS构建中公开它们。

在react应用程序中,您可以访问以下变量:

let value = {process.env.REACT_APP_MYVALUE}
在HTML中,可以使用以下变量:

<title>%REACT_APP_SITE_NAME%</title>
%REACT\u APP\u SITE\u NAME%

使用create-react-app进行快速阅读:

它们对于在源代码中存储不属于状态或声明(deep)的站点范围的值和设置非常有用

需要知道的重要一点是,要使用react,它们必须从
react\u APP\u
开始。这是因为环境是一个nodejs环境,nodejs将声明所有变量,除非它们以
REACT\u APP\uu

REACT\u APP\u
开头的环境变量在构建期间嵌入到应用程序代码中

不要将任何机密(如私钥)存储为
REACT\u APP\u
变量!这将在JS构建中公开它们。

在react应用程序中,您可以访问以下变量:

let value = {process.env.REACT_APP_MYVALUE}
在HTML中,可以使用以下变量:

<title>%REACT_APP_SITE_NAME%</title>
%REACT\u APP\u SITE\u NAME%

create react app:

一个很好的快速阅读用法。env文件的一个常见用例是,正如您所暗示的,存储秘密变量。由于它们的秘密性质,它们不应该进入任何git差异/日志。这对于在不泄露组织机密的情况下公开代码非常有用,甚至对于让两个不同的开发人员使用不同的本地数据库凭据运行相同的代码也非常有用,例如,对于“环境”而言。当您从个人笔记本电脑启动应用程序时,您可能需要特定于笔记本电脑及其“环境”的变量,而当应用程序从云服务时,可能需要不同的变量,例如api服务器的url,如果您可以信任repo-access开发人员的内容,那么您可以将该文件添加到git中。由于它们的秘密性质,它们不应该进入任何git差异/日志。这对于在不泄露组织机密的情况下公开代码非常有用,甚至对于让两个不同的开发人员使用不同的本地数据库凭据运行相同的代码也非常有用,例如,对于“环境”而言。当您从个人笔记本电脑启动应用程序时,您可能需要特定于笔记本电脑及其“环境”的变量,而当应用程序从云服务时,可能需要不同的变量,例如api服务器的url,如果您可以信任RepoAccessdevs的内容,您可以将该文件添加到git中。我把你的帖子误读为REACT\u APP\u SECRET\u KEY,这会泄露密钥。@没问题,重要的是要知道环境问题是否是为了他/她的利益