Process.Env 未填充在 Azure 上的 React 应用程序中
Process.Env Isn't Populated in React App on Azure
我正在尝试在 Azure 应用服务中获取 React 应用程序 运行,但在使环境变量起作用时遇到困难。
本地
当 运行 在本地时,我正在使用 .env.local
文件加载环境变量(未签入 git)。
REACT_APP_SERVER_URL=http://localhost:5000
然后我可以通过使用 process.env.REACT_APP_SERVER_URL
引用它来在我的应用程序中使用它。一切都按预期工作。
在 Azure 上
现在我正在尝试让同样的东西在 Azure 中运行。我已经使用应用程序设置设置了配置(在他们的文档 here and here 中有描述)。
我可以使用 kudu 进入调试控制台,并看到正在设置环境变量。
但是使用 process.env.REACT_APP_SERVER_URL
并没有引入那个值。如果我 console.log(process.env)
我的 url 不显示。
我的 React 应用程序是几天前使用 create-react-app
cli 创建的。我的 React 应用程序是通过 git 集线器操作和以下启动命令部署的:(pm2 serve /home/site/wwwroot/build --no-daemon --spa
)
根据我在网上阅读的内容,它“应该”正常工作,所以我不确定故障是什么。我的想法是 pm2 可能会阻止环境变量,但不确定。
This guy 好像和我有类似的问题,但是没有详细说明这个问题的答案。而且我不想将配置存储在 package.json 中,因为那是 Azure Config 应该帮助我做的事情。
从基础架构的角度来看,React 单页应用只是一堆静态文件 - HTML、JS、CSS,等等。它无法进入服务器读取这些变量,因为没有服务器端代码 运行.
您将不得不捆绑您的环境变量,无论是在 .env
或 package.json
内还是在任何地方。
我正在尝试在 Azure 应用服务中获取 React 应用程序 运行,但在使环境变量起作用时遇到困难。
本地
当 运行 在本地时,我正在使用 .env.local
文件加载环境变量(未签入 git)。
REACT_APP_SERVER_URL=http://localhost:5000
然后我可以通过使用 process.env.REACT_APP_SERVER_URL
引用它来在我的应用程序中使用它。一切都按预期工作。
在 Azure 上
现在我正在尝试让同样的东西在 Azure 中运行。我已经使用应用程序设置设置了配置(在他们的文档 here and here 中有描述)。
我可以使用 kudu 进入调试控制台,并看到正在设置环境变量。
但是使用 process.env.REACT_APP_SERVER_URL
并没有引入那个值。如果我 console.log(process.env)
我的 url 不显示。
我的 React 应用程序是几天前使用 create-react-app
cli 创建的。我的 React 应用程序是通过 git 集线器操作和以下启动命令部署的:(pm2 serve /home/site/wwwroot/build --no-daemon --spa
)
根据我在网上阅读的内容,它“应该”正常工作,所以我不确定故障是什么。我的想法是 pm2 可能会阻止环境变量,但不确定。
This guy 好像和我有类似的问题,但是没有详细说明这个问题的答案。而且我不想将配置存储在 package.json 中,因为那是 Azure Config 应该帮助我做的事情。
从基础架构的角度来看,React 单页应用只是一堆静态文件 - HTML、JS、CSS,等等。它无法进入服务器读取这些变量,因为没有服务器端代码 运行.
您将不得不捆绑您的环境变量,无论是在 .env
或 package.json
内还是在任何地方。