在线文档教程

NPM-doctor

NPM-doctor

检查您的环境

概要

npm doctor

描述

npm doctor运行一组检查以确保您的 npm 安装具有管理 JavaScript 包所需的功能。npm主要是一个独立的工具,但它确实有一些必须满足的基本要求:

  • Node.js 和 git 必须可以由 npm 执行。

如果没有所有这些工作正常,npm 可能无法正常工作。许多问题通常归因于 npm 代码库之外的事情,因此npm doctor确认 npm 安装处于良好状态。

此外,除此之外,由于使用旧版本的 npm,还有很多问题报告。由于 npm 不断改进,因此运行npm@latest优于旧版本。

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

npm ping

默认情况下,npm 从主要的 npm 注册表安装registry.npmjs.orgnpm doctor命中注册表中的特殊 ping 端点。这也可以通过检查npm ping。如果此检查失败,您可能正在使用需要配置的代理,或者可能需要与您的IT员工交谈以通过 HTTPS 访问registry.npmjs.org

此检查是针对您配置的任何注册表进行的(您可以通过运行查看这是什么npm config get registry),如果您使用的是不支持/whoami主注册表支持的端点的私有注册表,则此检查可能会失败。

npm -v

虽然 Node.js 可能捆绑了特定版本的 npm,但我们建议所有用户尽可能运行 CLI 团队的策略npm@latest。由于 CLI 由一小组贡献者维护,因此只有一行开发资源,因此 npm 自己的长期支持版本通常只会获得关键的安全性和回归修复。该团队认为,npm 的最新测试版本几乎总是可能是 npm 最具功能性和无缺陷的版本。

node -v

对于大多数用户而言,在大多数情况下,最佳版本的 Node 将是最新的长期支持(LTS)版本。那些想要访问新的 ECMAscript 功能或对 Node 标准库进行前瞻性更改的人可能正在运行更新的版本,并且由于企业更改控制策略,有些人可能需要运行旧版本的 Node 。没关系!但总的来说,npm 团队建议大多数用户运行 Node.js LTS。

npm config get registry

有些人可能正在为您的项目或公司从私有包注册表安装。那很棒!其他人可能正在关注教程或 StackOverflow 问题,以解决您可能遇到的问题。有时,这可能需要更改您指向的注册表。这一部分npm doctor只是让你,也许是谁帮助你获得支持,知道你没有使用默认注册表。

which git

虽然它在自述文件中有记录,但是 npm 需要安装 Git 来执行它所做的许多事情可能并不明显。此外,在某些情况下 - 特别是在 Windows 上 - 你可能会让 Git 设置为无法通过你访问,PATH以便 npm 可以找到它。此检查确保 Git 可用。

权限检查

  • 您的缓存必须是运行 npm 的用户可读写的。

验证缓存包的校验和

发布 npm 包时,发布过程会生成 npm 在安装时使用的校验和,以验证包在传输过程中是否已损坏。npm doctor使用这些校验和来验证本地缓存中的软件包 tarball(您可以查看该缓存所在的位置npm config get cache,并查看该缓存中的内容npm cache ls- 可能超出您的预期!)。如果缓存中存在损坏的软件包,则应该运行npm cache clean并重置缓存。