为什么npm list -g导致npm ERR! 缺less错误?

使用npm list -g后,npm返回以下消息

 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 

截图:

我知道这是一个古老的问题,但我一直在与类似的问题努力,我想至less添加什么为我工作…

问题

运行npm list -g按预期列出所有软件包,然后引发各种错误,包括上面提到的错误,至less对于我来说,还有一些无效和无关的错误,例如:

 extraneous: aws-sign2@0.5.0 /usr/local/lib/node_modules/npm/node_modules/aws-sign2 

我尝试了一堆解决scheme,包括npm upgradenpm prune ,以及安装缺less的软件包,这对我来说是一个沉闷的:

 missing: semver@2 || 3, required by normalize-package-data@1.0.1 

我仍然不确定这些错误的确切原因,但我相信这是在我升级到3.3.6时发生的(很容易可能是由于我在node&npm :()

虽然我已经提到,我没有节点/ npm之后,我跑了一些头痛:

 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 

希望这有助于某人,请评论,如果我已经说明了任何不准确的地方,或者有什么我可以在这里添加。