node.js - 无法使用 npm 运行任何子进程

标签 node.js npm npm-install

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

一些信息:

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

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

  • 关闭工作 AV
  • 删除 node_modulespackage-lock
  • 运行 npm cache clear --forcenpm cache verify
  • 卸载 Node 并重新安装
  • 完全卸载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

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

最佳答案

也许可以尝试以下方法:

  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 只是为了查看问题是否仍然存在于其他 prepare 脚本中。

  1. 将脚本添加到 postinstall Hook 而不是 prepare Hook ,以查看问题是否来自 Hook 。

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

关于node.js - 无法使用 npm 运行任何子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68445472/

相关文章:

javascript - Node.js 的 Cluster 模块和 Learnboost 的 Cluster 模块有什么区别?

node.js - 如何解决 gitbook-cli 超过最大调用堆栈大小错误?

javascript - ENOLOCK npm 错误!运行 npm 审核修复时出错

javascript - npm 安装错误 -> Windows_NT 6.1.7601

node.js - npm install 不显示已安装的依赖项

javascript - Node http res.end

arrays - Node js,for循环奇怪的情况

javascript - 如何在 node.js 中安全地将本地文件路径转换为 ​​file::?/url?

node.js - js-bson : Failed to load c++ bson extension, 使用纯JS版本

angularjs - npm start 在设置 angular-seed 应用程序时返回错误 127