使用concurrently同时启动React与Node服务报8080端口占用如何解决
错误根源
配置存在拼写错误,是触发端口占用的核心原因:
- 后端根目录
package.json的client脚本中,--perfix为错误拼写,npm识别执行子目录命令的正确参数是--prefix。 - 拼写错误导致
npm run client不会进入client目录启动React前端,反而在后端根目录执行npm start,也就是再次启动Node后端服务,两个后端进程同时监听8080端口,直接触发EADDRINUSE地址占用错误。
修复方法
- 修正后端
package.json的scripts配置,改正拼写错误,正确配置如下:
"scripts": { "start": "node server", "server": "nodemon server", "client": "npm start --prefix client", "dev": "concurrently \"npm run server\" \"npm run client\"" }
- 清理残留的占用端口进程:
- Windows环境执行:
netstat -ano | findstr :8080 taskkill /F /PID 上一步查到的进程PID - Mac/Linux环境执行:
lsof -i :8080 kill -9 上一步查到的进程PID
- Windows环境执行:
- 确认React项目存放在和后端
package.json同级的client目录下,重新执行npm run dev即可同时启动前后端服务。
内容的提问来源于stack exchange,提问作者Vadiraj Kanakagiri
相关产品推荐
相关产品推荐

