npm在使用npm list -g
npm ERR! missing: atom-package-manager@*, required by undefined@undefined npm ERR! missing: opal-npm-wrapper@git://github.com/anthonny/opal-npm-wrapper.git#0.1.1, required by asciidoctor.js@1.5.2 npm ERR! missing: xmlhttprequest@~1.6.0, required by asciidoctor.js@1.5.2
屏幕截图:
答案 0 :(得分:8)
我知道这是一个老问题,但我一直在讨论类似的问题,并且我至少会添加对我有用的内容......
<强>问题强>
运行npm list -g
按预期列出所有包,然后抛出各种错误,包括缺失的错误,如上所述,至少对我来说,还有一堆无效和无关的错误,例如:
extraneous: aws-sign2@0.5.0 /usr/local/lib/node_modules/npm/node_modules/aws-sign2
我尝试了一系列解决方案,包括npm upgrade
,npm prune
,以及安装丢失的软件包,对我来说这是一个很好的解决方案:
missing: semver@2 || 3, required by normalize-package-data@1.0.1
我仍然不确定这些错误的确切原因,但我相信这是在我升级到3.3.6时发生的。
<强>解决方案强>
经过一番头疼我跑了:
npm update -g --verbose
将我从v3.3.6升级到v3.5.3并摆脱了所有错误。请注意,--verbose
不是必需的,但有助于了解究竟发生了什么。现在我的npm list -g
返回一个干净的输出:
/usr/local/lib
├── npm@3.5.3
└── semver@2.3.2
希望这有助于某人,如果我说过任何不准确之处或者我可以在这里添加一些内容,请发表评论。
答案 1 :(得分:2)
答案 2 :(得分:1)
删除package-lock.json
中的/usr/local/lib
。
答案 3 :(得分:0)
在安装依赖包之前,必须先安装一个名为asciidoctor.js的全局包。今天,我遇到了同样的问题:我的某些全局软件包的树结构中包含“ UNMET DEP”(运行npm list -g以查看每个全局软件包的完整深度),这意味着缺少其子依赖项。
我通过重新安装每个全局软件包来解决。如果您在Arch Linux上遇到此问题, 首先查看此帖子:I have unmet dependencies
在我sudo pacman -Syu
之后,我遇到了这个问题,并且我遇到了一堆错误,它们缺少semver
和node-pyg
。
作为旁注,在Arch Linux下,node-pyg
和semver
作为依赖项安装,而npm
是通过pacman
(而不是npm
)安装的,我想这两个安装或更新的顺序很重要。可能在其他OS或Linux发行版下,这两个软件包未在存储库中列出。