执行npm run dev/prod报Missing script错误的排查与解决方法
报错原因
出现Missing script: "dev"错误,核心是npm无法在当前上下文识别到package.json里定义的dev脚本,常见诱因有两个:
- 执行
npm run dev命令时,终端的当前工作目录不是存放对应package.json的项目根目录,npm找不到目标配置文件。 - package.json存在JSON语法错误,你贴的配置里,
scripts对象闭合的花括号}后多了一个多余的尾逗号,JSON语法不支持结构末尾的多余逗号,会导致npm解析配置失败,无法读取到scripts下的所有命令。
修复方法
- 先切对工作目录:执行命令前,先通过
cd 你的项目根目录路径切到存放package.json的文件夹,Windows下可以执行dir、macOS/Linux下执行ls,确认返回的文件列表里存在package.json后再执行npm命令。 - 修正JSON语法错误:删掉scripts块闭合花括号后面的多余逗号,修正后的合法配置结构参考:
{ "scripts": { "dev": "set NODE_ENV=development && node ./server/index.js", "prod": "set NODE_ENV=production && node ./server/index.js" } }
修改完成后保存文件,直接执行不带参数的npm run,终端会列出所有当前识别到的可执行脚本,确认dev、prod在列表中后,再执行npm run dev/npm run prod就不会触发该报错。
- 额外优化提示:你当前写的
set NODE_ENV=xxx的环境变量设置语法仅支持Windows cmd终端,在PowerShell、macOS、Linux环境下会失效。如果需要跨终端跨系统兼容,可以安装cross-env依赖,将脚本改写为"dev": "cross-env NODE_ENV=development node ./server/index.js",即可在所有环境下正常注入环境变量。
内容的提问来源于stack exchange,提问作者Daniel Corona
相关产品推荐
相关产品推荐

