2

概括:

我正在寻找一种策略,了解如何找到并修复 package-lock.json 中的错误。此错误中断npm install

  • 我如何弄清楚是什么安装了这个 buble 依赖项?
  • 我可以简单地删除条目吗?
  • 我如何确定参考值应该是多少?

细节

我想更新我的 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 依赖项?我可以简单地删除条目吗?我如何确定参考值应该是多少?

提前感谢任何方向

4

4 回答 4

8

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

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

于 2017-11-20T23:41:50.830 回答
2

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

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

于 2017-11-20T20:22:55.863 回答
1

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

于 2020-02-28T20:29:56.707 回答
0

我有类似的问题,但不完全相同。当我尝试在公司网络环境中安装 npm 时遇到了这个问题。某些特定的 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 install 。一切都很好。

于 2019-07-05T10:54:58.227 回答