在VSCode中运行"npm install"时出现问题.抛出`npm ERR!代码ENOENT`



我当前在VSCode中运行"npm install"时遇到问题。我正在使用Vue.js运行一个laravel项目。在保存我的package.json的路径中,我首先从浏览器安装了node,现在我正在尝试运行npm install,以便设置正确的node_modules文件夹来运行我的应用程序。我尝试了以下解决方案,但都没能解决问题。

我运行了以下命令:

npm install laravel-mix --save-dev
Npm install
Npm install && npm run dev
npm ci

我也试过这样做:来自终端的npm安装错误以及仔细检查package.json所在的目录。

这是npm version的输出

npm: '8.15.0',
node: '16.17.0',
v8: '9.4.146.26-node.22',
uv: '1.43.0',
zlib: '1.2.11',
brotli: '1.0.9',
ares: '1.18.1',
modules: '93',
nghttp2: '1.47.0',
napi: '8',
llhttp: '6.0.7',
openssl: '1.1.1q+quic',
cldr: '41.0',
icu: '71.1',
tz: '2022a',
unicode: '14.0',
ngtcp2: '0.1.0-DEV',
nghttp3: '0.1.0-DEV'
}

这是我在运行npm install时遇到的错误

npm ERR! code ENOENT
npm ERR! syscall spawn pwsh
npm ERR! path /Users/node_modules/deasync
npm ERR! errno -2
npm ERR! enoent spawn pwsh ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

我已经尝试删除我的项目,并从git中重新克隆它,以及从我的计算机中完全删除节点并重新安装它。最后,我安装了avn和nvm,以尝试控制不同的节点版本,并确保所有内容都兼容。我也试过禁用我运行的任何防病毒软件,但都没有成功。

对于任何遇到我问题的人来说,我最终同时做了三件事,所以我不完全确定哪一件是最终的解决方案:

  1. 我禁用了防火墙(我运行的是Sophos(

  2. 我重置了我正在工作的文件夹的权限,首先从我的项目所在的repo中执行cd ..,然后运行chown -R 502:20 [replace with directory where repo exists]

  3. 最后,我使用brew install --cask powershell安装了Power shell

我遇到了同样的问题,但我用以下命令行解决了它:

npm config set script-shell "C:\Windows\System32\cmd.exe"