如何解决如何设置环境变量以响应脚本
我正在构建一个具有后端和前端的项目。 我的想法是将两个文件夹都放在同一个目录下,再用另一个运行它们的npm脚本来存储。
问题是我无法在作为前端的两个软件包之一中设置端口。
在我的主package.json中,我有这个:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1","start-app": "cross-env SERVER_PORT=8080 npm start --prefix ./frontend","start-server": "cross-env SERVER_PORT=8080 npm start --prefix ./backend"
},
它适用于后端,但不适用于前端。
前端具有基本配置。
"scripts": {
"start": "react-scripts start","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject"
}
该项目正在运行,但是当我寻找process.env时,前端没有SERVER_PORT的踪迹,但在后端却存在。
(后端脚本是新npm软件包的默认脚本)。
"scripts": {
"start": "node main.js","test": "echo \"Error: no test specified\" && exit 1"
},
解决方法
CRA使用PORT
定义端口变量。像这样运行它:
"start": “PORT=8000 react-scripts start"
此外,由于CRA本质上是一个静态站点,因此它本身没有env变量的概念-这些是NodeJS特定的。为您定义了诸如PORT和NDOE_ENV之类的东西,并在开发服务器中使用了它们。如果您想在React组件中使用自定义环境变量,则可以通过定义前缀REACT_APP_
(例如REACT_APP_SITENAME
)使它们可用。
在此处查看文档:{{3}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。