React.js新手使用concurrently运行npm start:dev脚本报错如何解决
核心问题定位
- 配置文件语法错误:你提供的
package.json中,dependencies配置块的最后一项"web-vitals": "^1.0.1"结束后没有补全逗号,直接衔接了后续的scripts配置段,造成JSON格式非法,触发脚本内容识别错位。从你的报错日志可以看到,原本对应前端启动的start脚本被错误解析为concurrently相关命令,正是这个语法错位导致的连锁问题。 - 缺失项目依赖:配置里用到的
concurrently工具没有被安装到项目依赖中,即使JSON格式修正完成,缺少该工具也会直接触发命令找不到的报错。 - 操作命令偏差:原本计划执行
npm run start:dev启动双服务,但从日志开头的执行记录可以看到,你实际输入的是npm start,触发的是单独启动前端服务的流程,自然无法匹配预期的双服务运行逻辑。 - 运行环境兼容风险:Windows命令提示符对嵌套引号的参数解析逻辑和类Unix系统存在差异,未做适配的双引号写法容易出现参数截断、命令拆分错误的问题。
分步修复操作
- 第一步:校验并修正
package.json的JSON格式,给dependencies块的最后一项补上闭合逗号,确保所有配置项的边界正确,可通过JSON格式校验工具排查手误导致的语法错误。 - 第二步:在项目根目录执行
npm install concurrently --save-dev,将concurrently安装为项目本地开发依赖,避免全局安装带来的路径识别、版本不匹配问题。 - 第三步:确认项目根目录下存在json-server需要监听的
db.json文件,避免json-server启动时因找不到目标文件报错。 - 第四步:必须执行
npm run start:dev触发启动流程,不要单独执行npm start,否则无法实现双服务并行运行的目标。
修复后的配置参考
{ "name": "myproj", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "axios": "^0.21.1", "bootstrap": "^4.6.0", "json-server": "^0.16.3", "react": "^17.0.1", "react-dom": "^17.0.1", "react-router-dom": "^5.2.0", "react-scripts": "4.0.2", "web-vitals": "^1.0.1" }, "devDependencies": { "concurrently": "^6.5.1" }, "scripts": { "start": "react-scripts start", "json-server": "json-server --watch db.json --port 3001", "start:dev": "concurrently \"npm start\" \"npm run json-server\"", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" } }
注意:如果修复后仍出现引号解析报错,可以将
start:dev脚本中的双引号替换为单引号适配Windows cmd环境,写法为concurrently 'npm start' 'npm run json-server'。
内容的提问来源于stack exchange,提问作者Mahesh Tibirishetti
相关产品推荐
相关产品推荐

