我正在构建一个具有后端和前端的项目。 我的想法是将两个文件夹都放在同一个目录下,再用另一个运行它们的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"
},
答案 0 :(得分:1)
CRA使用PORT
定义端口变量。像这样运行它:
"start": “PORT=8000 react-scripts start"
此外,由于CRA本质上是一个静态站点,因此它本身没有env变量的概念-这些是NodeJS特定的。为您定义了诸如PORT和NDOE_ENV之类的东西,并在开发服务器中使用了它们。如果您想在React组件中使用自定义环境变量,则可以通过定义前缀REACT_APP_
(例如REACT_APP_SITENAME
)使它们可用。
在此处查看文档:{{3}}