使用concurrently启动前后端时出现5000端口EADDRINUSE占用错误无法解决
问题根因
你根目录package.json中的client启动脚本参数顺序配置错误,yarn的--prefix参数需要放在子命令(start)之前才能生效,你当前的写法会让--prefix client作为参数传递给start命令,而不是让yarn切换到client目录执行命令。
这种情况下执行yarn run client时,yarn会停留在根目录执行根目录的start脚本(即node server.js),最终你执行dev命令时会同时启动两个服务端进程,都尝试监听5000端口,就会触发端口占用报错。你看到的无法杀死的不存在进程也是这个原因,实际没有隐藏端口占用,都是脚本错误导致的重复启动。
修复方案
修改根目录package.json的scripts字段,将client配置调整为以下任意一种即可:
// 方案1:调整参数顺序 "client": "yarn --prefix client start"
// 方案2:先切换目录再执行启动,逻辑更直观 "client": "cd client && yarn start"
修改后重新执行yarn run dev即可正常同时启动前后端。
内容的提问来源于stack exchange,提问作者Luke Lyu
相关产品推荐
相关产品推荐

