Environment variables 我可以将Netlify中的构建环境变量与Create React应用程序一起使用吗?

Environment variables 我可以将Netlify中的构建环境变量与Create React应用程序一起使用吗?,environment-variables,create-react-app,netlify,Environment Variables,Create React App,Netlify,如何将Netlify中的构建环境变量与Create React App一起使用?您可以在Netlify上的Create React App中使用环境变量,但创建React App的所有构建约束仍将适用 <pre>{JSON.stringify(process.env, undefined, 2)}</pre> 默认情况下,将为您定义节点_ENV 任何以REACT\u APP\u开头的其他环境变量都将可用 除NODE_ENV之外的任何其他变量都将被忽略 更改任何环境变量

如何将Netlify中的构建环境变量与Create React App一起使用?

您可以在Netlify上的
Create React App
中使用环境变量,但创建React App的所有构建约束仍将适用

<pre>{JSON.stringify(process.env, undefined, 2)}</pre>
  • 默认情况下,将为您定义节点_ENV
  • 任何以
    REACT\u APP\u
    开头的其他环境变量都将可用
  • 除NODE_ENV之外的任何其他变量都将被忽略
  • 更改任何环境变量都需要触发新的构建/部署
重要提示:无法从Netlify上托管的浏览器动态访问
create react app
中的任何环境变量!它们必须在构建时访问,才能在静态站点中使用


从Netlify上的主机:

App.js

import React,{Component}来自'React';
从“/logo.svg”导入徽标;
导入“/App.css”;
类应用程序扩展组件{
render(){
返回(
Netlify上Create React应用程序中的环境变量

要开始,请编辑

src/App.js
并提交您的回购协议。

NODE_ENV值为“{process.ENV.NODE_ENV}”

自定义_ENV_VAR值为“{process.ENV.CUSTOM_ENV_VAR}”

REACT_APP_CUSTOM_ENV_VAR值为“{process.ENV.REACT_APP_CUSTOM_ENV_VAR}”

TOML_ENV_VAR值为“{process.ENV.TOML_ENV_VAR}”

REACT_APP_TOML_ENV_VAR值为“{process.ENV.REACT_APP_TOML_ENV_VAR}”

); } } 导出默认应用程序;
在以下位置生成以下内容:

Netlify.com
app.netlify.com
中,
CUSTOM_ENV_VAR
REACT_app_CUSTOM_ENV_VAR
设置如下:

netlify.toml
环境变量设置为:

[build]
  command = "yarn build"
  publish = "build"

[context.production.environment]
  TOML_ENV_VAR = "From netlify.toml"
  REACT_APP_TOML_ENV_VAR = "From netlify.toml (REACT_APP_)"
[Extra]
.env
<pre>{JSON.stringify(process.env, undefined, 2)}</pre>
您可以在项目根目录下的
.env
文件中设置环境变量,并提交到存储库。以下内容适用于
react-scripts@1.1.0
和更高版本,它获取
包.json
文件的
版本

<pre>{JSON.stringify(process.env, undefined, 2)}</pre>
.env

REACT_APP_VERSION=$npm_package_version
注意:可以访问该版本(以及许多其他版本)。

不要将密钥放入存储库。

虽然有很多方法可以实现这一点,但我发现将Netlify环境变量放入React应用程序的最简单方法是在项目根目录下创建一个
.env
文件,其中包含以下内容:

<pre>{JSON.stringify(process.env, undefined, 2)}</pre>
#反应环境变量
# https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables#expanding-env中的环境变量
#Netlify环境变量
# https://www.netlify.com/docs/continuous-deployment/#environment-变数
REACT_APP_VERSION=$npm_package_VERSION
REACT\u APP\u REPOSITORY\u URL=$REPOSITORY\u URL
REACT_APP_BRANCH=$BRANCH
REACT_APP_PULL_REQUEST=$PULL_REQUEST
REACT_APP_HEAD=$HEAD
REACT\u APP\u COMMIT\u REF=$COMMIT\u REF
REACT_APP_CONTEXT=$CONTEXT
REACT\u APP\u REVIEW\u ID=$REVIEW\u ID
REACT\u APP\u INCOMING\u HOOK\u TITLE=$INCOMING\u HOOK\u TITLE
REACT\u APP\u INCOMING\u HOOK\u URL=$INCOMING\u HOOK\u URL
REACT\u APP\u INCOMING\u HOOK\u BODY=$INCOMING\u HOOK\u BODY
REACT_APP_URL=$URL
REACT\u APP\u DEPLOY\u URL=$DEPLOY\u URL
REACT\u APP\u DEPLOY\u PRIME\u URL=$DEPLOY\u PRIME\u URL
通过将其放置在可见组件中显示所有这些环境变量:

{JSON.stringify(process.env,未定义,2)}

重要您需要重新启动(或重新构建)应用程序,以便随时设置这些环境变量。

一个简单的谷歌搜索产生了这样的结果:您是否能够访问Netlify提供的变量,如COMMIT\u REF?解决了我上面的问题。CRA覆盖
process.env
以提供
REACT\u APP
变量。要访问netlify变量,必须在构建脚本中重命名它们,如下所示:
REACT\u APP\u COMMIT\u REF=“$COMMIT\u REF”