运行npm run build:dev脚本报‘node’未被识别错误的求助
运行npm run build:dev报错排查
问题现象
执行npm run build:dev触发如下内容:
$ npm run build:dev
@ build:dev D:\project
cross-env NODE_ENV=development webpack && node react/scripts/build.dev.js
'node' is not recognized as an internal or external command, operable program or batch file npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! build:dev: `cross-env NODE_ENV=development webpack && node react/scripts/build.dev.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the build:dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\AppData\Roaming\npm-cache\_logs\2021-03-22T07_04_41_953Z-debug.log
当前环境的Node版本为v10.16.0,npm版本为6.9.0。
排查解决步骤
- 验证终端基础识别能力:打开全新的CMD/PowerShell窗口,分别执行
node -v、npm -v。如果命令同样提示无法识别,分情况处理:如果使用nvm-windows管理多版本Node,切换版本后需要重启终端才能生效;如果是独立安装的Node,找到实际安装目录(默认路径为C:\Program Files\nodejs\),将该路径添加到系统环境变量的Path条目下,保存配置后重启所有终端窗口重试。 - 调整环境变量权限层级:如果直接在终端执行
node -v能正常输出版本号,大概率是Node路径只配置在了当前用户的环境变量中,导致npm以其他权限运行脚本时读取不到路径。此时需要把Node安装路径、npm全局缓存路径(即报错日志中提到的C:\Users\你的用户名\AppData\Roaming\npm)一同添加到系统级的Path变量中,重启终端后再执行构建命令。 - 清理项目内异常文件:检查项目根目录下是否存在命名为
node、node.exe的空文件或损坏程序,这类文件会优先于系统环境变量被检索,触发命令识别失败的报错,发现后直接删除即可。 - 临时路径定位问题:如果上述操作仍未解决,可以临时把package.json中build:dev脚本里的
node替换为Node安装的完整绝对路径,修改参考:
如果修改后能正常跑通,即可确认是脚本进程无法正确读取系统PATH的问题,回到环境变量配置步骤调整即可。"build:dev": "cross-env NODE_ENV=development webpack && \"C:\\Program Files\\nodejs\\node.exe\" react/scripts/build.dev.js" - 排查路径特殊字符:如果Node安装路径、项目路径、npm缓存路径中包含中文、特殊符号,也会触发命令识别失败,需要把相关路径调整为纯英文无特殊字符的目录后重试。
内容的提问来源于stack exchange,提问作者user123
相关产品推荐
相关产品推荐

