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