微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 npm 运行任何子进程

如何解决无法使用 npm 运行任何子进程

我正在尝试为工作存储库安装包,但是每当我尝试运行安装时,一旦它进入子进程(例如为包运行安装脚本),我就会收到一个奇怪的生成错误。我假设它在运行子进程时遇到问题。

一些信息:

  • Windows 机器
  • Node v12.22.3 和 npm v6.14.13(我尝试过 node 14)
  • 尝试使用 bash、windows 终端、cmd 提示符和 powershell(均使用管理员
  • 错误代码似乎是 4058,但我不确定它找不到什么

上周还好好的,现在突然什么都做不了了。我尝试了以下方法

  • 关闭工作影音
  • 删除 node_modulespackage-lock
  • 运行 npm cache clear --forcenpm cache verify
  • 卸载节点并重新安装
  • 完全卸载 nvm 和 node 并重新安装

我看到的错误是:

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn =
npm ERR! file =
npm ERR! path =
npm ERR! errno ENOENT
npm ERR! root@ prepare: `husky install`
npm ERR! spawn = ENOENT
npm ERR!
npm ERR! Failed at the root@ prepare 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\dhers\AppData\Roaming\npm-cache\_logs\2021-07-19T18_28_56_807Z-debug.log

请注意,这不是严重的问题,任何运行子进程脚本的程序似乎都会发生此错误

我以前从未见过这种情况,而且我无法使用我所做的谷歌搜索来修复它。以下是 npm 日志中的一些信息:

59 silly lifecycle root@~prepare: Args: [ '-c','husky install' ]
60 info lifecycle root@~prepare: Failed to exec prepare script
61 silly lifecycle root@~prepare: Returned: code: -4058  signal: null
62 info lifecycle root@~prepare: Failed to exec prepare script
63 verbose stack Error: root@ prepare: `husky install`
63 verbose stack spawn = ENOENT
63 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:268:19)
63 verbose stack     at onErrorNT (internal/child_process.js:470:16)
63 verbose stack     at processticksAndRejections (internal/process/task_queues.js:84:21)
64 verbose pkgid root@
65 verbose cwd C:\Users\dhers\Documents\Development\Work\seamless
66 verbose Windows_NT 10.0.19042
67 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i"
68 verbose node v12.22.3
69 verbose npm  v6.14.13

有人见过这个吗?我真的希望我只是忽略了一些非常简单的事情。任何帮助将不胜感激,因为这让我现在停止了。

解决方法

确保您的系统环境变量 PATH 包含以下值:

%SystemRoot%

%SystemRoot%\system32

%SystemRoot%\System32\Wbem

C:\Program Files\nodejs\

此外,请确保您的用户环境变量 PATH 包含以下值:

C:\Users\dhers\AppData\Roaming\npm

请注意,您需要重新启动计算机才能使更改生效。

,

也许可以尝试以下操作:

  1. 清理 npm 缓存
npm cache clean --force
  1. 检查您使用的 npm 版本。也许它应该更新:
npm install -g npm@latest
  1. 尝试使用其他版本的软件包 huskey
  2. 对于此特定场景,尝试通过添加跳过 huskey install
export HUSKY_SKIP_INSTALL=true

到 npm install cmd 只是为了查看其他准备脚本是否仍然存在问题。

  1. 将脚本添加到 postinstall 钩子而不是 prepare 钩子,看看问题是否出自钩子。

  2. 在您的工作目录中逐级上移,并确保没有其他目录包含 /node_modules 目录或 package.jsonpakcage-lock.json 文件。有时 npm 将其视为项目的根。

,
  1. 也许可以尝试将 husky install 更改为“husky install”,因此请使用双引号更改反引号
  2. 尝试使用纱线。
,

删除package-lock.jsonnode_modules

执行npm cache clean --force

执行npm installyarn install

然后再次运行

可能是你的依赖有问题,检查你的 package.json 你的 npm local 不正确

"dependencies": {
  "npm": "^7.5.6",

那你可以试试yarn,yarn install

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。