概述
我正在尝试解决一个问题,即为什么我无法通过npm run命令运行在package.json
文件中定义的scripts
。每个脚本命令都会返回相同的错误消息:
npm ERR! code ENOENT
npm ERR! syscall spawn bash
npm ERR! path C:\Temp\test4
npm ERR! errno -4058
npm ERR! enoent spawn bash ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
最小复现步骤
我在我的Windows 11机器上从Node下载页面安装了NodeJS 18.12.1 x64 MSI。
我创建了一个空目录(在这里称为test4),其中包含一个名为package.json
的单个文件,其内容如下:
{
"scripts": {
"hello": "echo 'Hello World'"
}
}
我在与上面列出的package.json
文件相同的文件夹中以管理员身份打开了PowerShell窗口。
运行npm run hello
会生成上面的错误消息。
详细/傻瓜日志记录结果
我使用的一种故障排除技术是启用傻瓜日志记录,以记录尽可能多的详细信息。该命令(npm run hello -ddd
)的结果如下:
期望行为
我已经尝试过的事情
完全卸载NodeJs/NPM,遵循这个StackOverflow答案
安装不同版本的NodeJS/NPM。(我尝试了2/3个不同的版本)
在我的简单的
package.json
文件和一个我的项目中的“真正的”package.json
文件上运行npm install
。两个项目都成功安装。查看错误消息中提到的AppData文件夹中的日志文件。(与我提供的详细错误截图内容相同)
script-shell =“bash”
行。 - Floris