npm 安装失败:buble@github:pemrouz/buble 引用不是树

npm install fails: buble@github:pemrouz/buble reference is not a tree

总结:

我正在寻找有关如何查找和修复程序包中的错误的策略-lock.json。此错误中断 npm install:

详情

我想更新我的 node_modules。所以我删除了我的 node_modules 目录和 运行 npm install。虽然这在过去一直有效,但现在失败并出现以下错误(在 AppData\Roaming\npm-cache_logs\XXXX-debug.log 中找到):

13 silly fetchPackageMetaData error for buble@github:pemrouz/buble#fdcd2bac2c8945816b6fe3b032e49b58cc728b14 Command failed: C:\Program Files\Git\mingw64\bin\git.EXE checkout fdcd2bac2c8945816b6fe3b032e49b58cc728b14
13 silly fetchPackageMetaData fatal: reference is not a tree: fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack Error: Command failed: C:\Program Files\Git\mingw64\bin\git.EXE checkout fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack fatal: reference is not a tree: fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack
14 verbose stack     at ChildProcess.exithandler (child_process.js:271:12)
14 verbose stack     at emitTwo (events.js:125:13)
14 verbose stack     at ChildProcess.emit (events.js:213:7)
14 verbose stack     at maybeClose (internal/child_process.js:927:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

我相信该参考来自 /package-lock.json,我在其中找到了 2 个使用该参考的条目。网上搜索得知 /package-lock.json 是由 npm 更新的。我不知道这个气泡包是如何添加到我的项目中的——一定是其他包的依赖项,但我缺乏弄清楚是哪个包的技能。条目如下所示:

...
"buble": {
      "version": "github:pemrouz/buble#fdcd2bac2c8945816b6fe3b032e49b58cc728b14",
      "requires": {
        "acorn": "5.2.1",
...

在网上搜索类似的问题似乎来自试图同步其存储库的用户。这些解决方案建议在 Gitub 中同步分叉的方法不适用于我的情况。据我所知,有人以某种方式更新了 Github 存储库,这破坏了此引用。

所以,我正在寻找解决此问题的策略。我如何找出是什么安装了这个 buble 依赖项?我可以简单地删除条目吗?我如何确定参考值应该是多少?

提前感谢您的指导

我相信你可以 运行 npm install --no-optional buble 这应该会阻止安装可选的依赖项。在执行此操作之前,您应该删除旧的 node_modules 并重新开始。

https://docs.npmjs.com/cli/install

我成功了。我所做的是删除我的 package-lock.json 文件中对 buble 的所有引用(当然是在制作了备份副本之后)。然后我删除了我的 node_modules 目录,删除了 npm cache clear --force,然后 npm install。 npm 能够重新加载所有内容,并且似乎已经将 buble 包重新添加到我的包中-lock.json 现在具有新的参考值。

我不知道是否需要所有这些步骤;最后我变得绝望并准备尝试一切。希望这对其他人有帮助!

我有类似的问题,但不完全相同。我在公司网络环境中尝试 npm install 时遇到了这个问题。某些特定的 SSH 和 HTTPS 被阻止。错误信息是

npm sill pacote Retrying git command: ls-remote -h -t https://github.com/pemrouz/buble.git attempt # 6
npm sill pacote Retrying git command: ls-remote -h -t https://github.com/pemrouz/buble.git attempt # 7

我删除了 package-lock.json 并再次执行 npm 安装。一切都很好。

我的问题是我没有 GIT github 安装在我的机器上。您需要安装 Git,以便 npm install 可以使用它来下载软件包