Node.js API测试:npm run test-watch执行报错排查求助
解决nodemon执行npm test时提示“npm未被识别”的问题
嘿,我一眼就发现问题出在你的test-watch脚本的引号使用上啦!
问题根源
在Windows系统的默认终端(CMD或PowerShell)里,单引号'是不被识别为命令包裹符的。你的脚本里用了:
"test-watch": "nodemon --exec 'npm test'"
这会导致nodemon把'npm test'当成一个完整的、不存在的命令去执行,而不是调用npm并传入test参数,所以才会出现“'npm' 未被识别”的错误。
修复方案
把单引号换成转义后的双引号(因为JSON字符串本身用双引号包裹,内部双引号需要转义),修改后的package.json脚本如下:
"scripts": { "test": "mocha server/**/*.test.js", "test-watch": "nodemon --exec \"npm test\"" }
这个写法还能兼顾跨平台兼容——类Unix系统(Mac/Linux)的终端也支持双引号包裹命令,所以不管你用什么系统都能正常运行。
额外验证
修改完成后,重新运行npm run test-watch,nodemon应该就能正常启动并调用npm test脚本了。从你的报错信息看nodemon已经能正常启动,所以这个引号问题就是核心原因,调整后大概率能解决问题。
内容的提问来源于stack exchange,提问作者Asem Abd-elnaser
相关产品推荐
相关产品推荐

