概述
我试图解决为什么不能通过scripts命令运行package.json文件中定义的npm运行的原因。每个脚本命令都返回相同的错误消息:
国家预防机制错误!代码ENOENT 国家预防机制错误!syscall产卵 国家预防机制错误!路径C:\Temp\test4 4 国家预防机制错误!错误号-4058 国家预防机制错误!无菌苗 国家预防机制错误!这与npm无法找到文件有关。 国家预防机制错误!环境
最小复制步骤
我在我的Windows11机器上安装了来自NodeJS 18.12.1 x64 MSI的节点下载页。
我创建了一个空目录(在我的示例中称为test4 ),其中包含一个名为package.json的文件,其内容如下:
{
"scripts": {
"hello": "echo 'Hello World'"
}
}我以管理员身份在与上面列出的package.json文件相同的文件夹中打开了一个package.json窗口。
运行npm run hello将生成上面的错误消息。
冗长/愚蠢的日志记录结果
我使用的一种故障排除技术是使愚蠢的伐木能够记录尽可能多的详细信息。该命令(npm run hello -ddd)的结果如下:

预期行为
我的一位同事也尝试了同样的步骤,他得到了我预期的结果:

我已经尝试过的东西
npm install文件上运行package.json,并在我的一个项目中的“真实”package.json文件上运行。这两个项目都成功安装。发布于 2022-12-01 19:06:36
运行npm config list并检查是否设置了script-shell:

在我的例子中,它被配置为使用bash,这就是错误发生的原因。要解决这个问题,只需运行npm config delete script-shell来删除配置设置
至于这件事是怎么发生的,我不太清楚。
https://stackoverflow.com/questions/74635083
复制相似问题