React+Node项目使用Concurrently启动失败求助
问题修复方案
错误1:nodemon找不到index.js的修复
- 问题根源:主目录
package.json的server脚本直接执行nodemon server.js,但server.js实际存放在./server子目录中,nodemon会在主目录下查找该文件,导致找不到。 - 修复方式(二选一):
- 直接指定脚本路径:
nodemon ./server/server.js - 调用server目录的自有脚本(更规范):
npm run server --prefix ./server
- 直接指定脚本路径:
错误2:npm找不到/client/package.json的修复
- 问题根源:主目录
client脚本使用了--prefix /client,这里的/是系统绝对路径,会去系统根目录查找client文件夹,而非当前主目录的子目录。 - 修复方式:将路径改为相对路径,脚本改为
npm start --prefix ./client(或直接写npm start --prefix client)
修改后的主目录package.json
{ "dependencies": { "audit": "^0.0.6", "concurrently": "^8.2.2", "fix": "^0.0.3", "npm": "^10.3.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, "scripts": { "client": "npm start --prefix ./client", "server": "nodemon ./server/server.js", "dev": "concurrently \"npm run client\" \"npm run server\"" }, "devDependencies": { "nodemon": "^3.0.3", "react-scripts": "^5.0.1", "webpack-cli": "^5.1.4" } }
额外注意事项
server子目录的package.json中,client脚本同样使用了错误的绝对路径/client,若需从server目录启动前端,需改为相对路径../client- 若要在主目录执行
npm run build,需在主目录scripts中添加:"build": "npm run build --prefix ./client"
验证步骤
- 删除主目录、client目录、server目录下的
node_modules和package-lock.json - 主目录执行
npm install,再分别进入client、server目录执行npm install - 主目录执行
npm run dev验证前后端启动状态 - 执行
npm run build完成部署打包
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

