如何解决如何访问部署在heroku上的mern应用程序中反应的env值?
我已经在 heroku 上部署了一个 mern 堆栈应用程序。我的应用程序的目录结构是这样的:-
|__client/ ** THIS IS EVERYTHING FROM THE REACT SIDE **
|__ node_modules/
|__ tons of stuff...
|__ public/
|__ index.html
|__ favicon.ico
|__ etc.
|__ src/
|__ index.js
|__ main/
|__ App.js
|__ etc.
|__ models/
|__ user.js
|__ todo.js
|__ etc.
|__ node_modules/
|__ stuff...
|__ routes
|__ userRoutes.js
|__ todoRoutes.js
|__ etc.
|__ .gitignore
|__ package.json
|__ server.js
|__ etc.
我在 heroku 中为后端设置了一些环境变量,它们工作得非常好。我正在从 express 应用程序提供我的 react 构建文件夹。我的 React 应用程序有一些我无法访问的环境变量。有什么办法可以从 /client 目录访问 heroku 中的 env 吗?
这是我的后端 package.json
{
"name": "mern-to-heroku","version": "1.0.0","main": "index.js","license": "MIT","dependencies": {
"body-parser": "^1.18.2","express": "^4.16.2","mongoose": "^4.13.6","morgan": "^1.9.0"
},"scripts": {
"start": "node server.js","heroku-postbuild": "cd client && npm install --only=dev && npm install && npm run build"
},"engines": {
"node": "8.9.2"
}
}
解决方法
环境。仅在您的 React 应用程序的构建时 (npm run build
) 可用,然后将被替换为它们的值。它们在您的应用程序运行时不“可用”,因此在您的 react-app 构建后,它们无法更改。
这意味着如果环境变量仅在 heroku 上可用,则您必须在 heroku 本身上构建应用程序。
示例:如果您使用 deploy-to-heroku
按钮,则可以添加到 app.json
(当然,需要针对您的设置进行自定义):
"scripts": {
"postdeploy": "npm run build"
},
用新的环境构建你的 react-app。部署到heroku之后
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。