npm-doctor

概要

> npm doctor

描述

npm doctor运行一系列检查来确保你的npm安装且管理正常。npm主要是一个独立的工具,但它有一些必须满足的基本要求:

  • Node.js和git必须由npm执行。
  • 主注册表registry.npmjs.com或者注册表API可用
  • node_modules(本地和全局)都存在,且可由当前用户写入
  • npm缓存存在,且其中的压缩包没有损坏

没有以上这些正常,npm可能无法正常工作。此外由于使用旧版本的npm,也有很多问题,建议更新到npm@latest。

npm doctor 验证您的环境中的以下项目,如果有任何建议的更改,将显示它们。

npm ping

默认情况下,ping的是注册表registry.npmjs.org,看看能否正常访问该网址。如不是默认情况,可以通过npm config get registry来查看ping的网址。

npm -v

查看npm版本。虽然大部分是由node.js绑定了特殊的npm版本,但是还是建议安装npm@latest。

node -v

查看node的版本。建议用户安装(LTS)版本的Node,因为其具有稳定、可靠性。

npm config get registry

查看您当前注册表地址。默认注册表地址registry.npmjs.org,但由于国内网络问题,也有公司使私人包注册表,这时需要更改注册表指向。例如国内常使用cnpm。

which git

查找Git的path,确保Git可用。因为npm需要Git配合来做很多事情,所以必须确保Git可用。

Permissions checks
  • 确保缓存可以由用户读写
  • 全局包二进制文件须由用户写入
  • 如果npm doctor检查您的项目,它则会检查本地node_modules是否可读写。
Validate the checksums of cached packages

发布npm包时,发布过程会生成一个校验和,npm会在安装时使用它来验证包在传输过程中是否损坏。npm doctor使用这些校验和来验证本地缓存中的包压缩文件(你可以看到缓存的位置npm config get cache,看看缓存里有什么npm cache ls- 可能比你想象的更多)。如果缓存中存在损坏的包,则应该运行npm cache clean并重置缓存。

results matching ""

    No results matching ""