/usr/local/lib/node_modules/npm/docs/output/commands
NameSizeModeActions
npm-access.html84030644editdlrm
npm-adduser.html74460644editdlrm
npm-audit.html261680644editdlrm
npm-bugs.html87820644editdlrm
npm-cache.html93000644editdlrm
npm-ci.html178730644editdlrm
npm-completion.html56650644editdlrm
npm-config.html105610644editdlrm
npm-dedupe.html174840644editdlrm
npm-deprecate.html75800644editdlrm
npm-diff.html155510644editdlrm
npm-dist-tag.html114390644editdlrm
npm-docs.html87240644editdlrm
npm-doctor.html112160644editdlrm
npm-edit.html60520644editdlrm
npm-exec.html195910644editdlrm
npm-explain.html81260644editdlrm
npm-explore.html59570644editdlrm
npm-find-dupes.html140700644editdlrm
npm-fund.html90600644editdlrm
npm-get.html52370644editdlrm
npm-help-search.html56300644editdlrm
npm-help.html59580644editdlrm
npm-init.html187530644editdlrm
npm-install-ci-test.html157760644editdlrm
npm-install-test.html210390644editdlrm
npm-install.html432580644editdlrm
npm-link.html214200644editdlrm
npm-ll.html127840644editdlrm
npm-login.html78650644editdlrm
npm-logout.html68540644editdlrm
npm-ls.html146730644editdlrm
npm-org.html74890644editdlrm
npm-outdated.html138000644editdlrm
npm-owner.html86200644editdlrm
npm-pack.html99200644editdlrm
npm-ping.html57050644editdlrm
npm-pkg.html142800644editdlrm
npm-prefix.html63430644editdlrm
npm-profile.html87680644editdlrm
npm-prune.html124280644editdlrm
npm-publish.html155420644editdlrm
npm-query.html128210644editdlrm
npm-rebuild.html114040644editdlrm
npm-repo.html84040644editdlrm
npm-restart.html67750644editdlrm
npm-root.html60860644editdlrm
npm-run.html147050644editdlrm
npm-sbom.html138630644editdlrm
npm-search.html99380644editdlrm
npm-set.html65340644editdlrm
npm-shrinkwrap.html57030644editdlrm
npm-star.html71720644editdlrm
npm-stars.html56680644editdlrm
npm-start.html70370644editdlrm
npm-stop.html66110644editdlrm
npm-team.html100260644editdlrm
npm-test.html64910644editdlrm
npm-token.html120050644editdlrm
npm-trust.html190330644editdlrm
npm-undeprecate.html65810644editdlrm
npm-uninstall.html108500644editdlrm
npm-unpublish.html103580644editdlrm
npm-unstar.html70250644editdlrm
npm-update.html230560644editdlrm
npm-version.html155800644editdlrm
npm-view.html144980644editdlrm
npm-whoami.html57000644editdlrm
npm.html120700644editdlrm
npx.html124250644editdlrm
Edit: /usr/local/lib/node_modules/npm/docs/output/commands/npm-doctor.html (11216B)
npm-doctor

npm-doctor @11.12.0

Check the health of your npm environment

Table of contents

Synopsis

npm doctor [connection] [registry] [versions] [environment] [permissions] [cache]

Note: This command is unaware of workspaces.

Description

npm doctor runs a set of checks to ensure that your npm installation has what it needs to manage your JavaScript packages. npm is mostly a standalone tool, but it does have some basic requirements that must be met:

  • Node.js and git must be executable by npm.
  • The primary npm registry, registry.npmjs.com, or another service that uses the registry API, is available.
  • The directories that npm uses, node_modules (both locally and globally), exist and can be written by the current user.
  • The npm cache exists, and the package tarballs within it aren't corrupt.

Without all of these working properly, npm may not work properly. Many issues are often attributable to things that are outside npm's code base, so npm doctor confirms that the npm installation is in a good state.

Also, in addition to this, there are also very many issue reports due to using old versions of npm. Since npm is constantly improving, running npm@latest is better than an old version.

npm doctor verifies the following items in your environment, and if there are any recommended changes, it will display them. By default npm runs all of these checks. You can limit what checks are ran by specifying them as extra arguments.

Connecting to the registry

By default, npm installs from the primary npm registry, registry.npmjs.org. npm doctor hits a special connection testing endpoint within the registry. This can also be checked with npm ping. If this check fails, you may be using a proxy that needs to be configured, or may need to talk to your IT staff to get access over HTTPS to registry.npmjs.org.

This check is done against whichever registry you've configured (you can see what that is by running npm config get registry), and if you're using a private registry that doesn't support the /whoami endpoint supported by the primary registry, this check may fail.

Checking npm version

While Node.js may come bundled with a particular version of npm, it's the policy of the CLI team that we recommend all users run npm@latest if they can. As the CLI is maintained by a small team of contributors, there are only resources for a single line of development, so npm's own long-term support releases typically only receive critical security and regression fixes. The team believes that the latest tested version of npm is almost always likely to be the most functional and defect-free version of npm.

Checking node version

For most users, in most circumstances, the best version of Node will be the latest long-term support (LTS) release. Those of you who want access to new ECMAscript features or bleeding-edge changes to Node's standard library may be running a newer version, and some may be required to run an older version of Node because of enterprise change control policies. That's OK! But in general, the npm team recommends that most users run Node.js LTS.

Checking configured npm registry

You may be installing from private package registries for your project or company. That's great! Others may be following tutorials or StackOverflow questions in an effort to troubleshoot problems you may be having. Sometimes, this may entail changing the registry you're pointing at. This part of npm doctor just lets you, and maybe whoever's helping you with support, know that you're not using the default registry.

Checking for git executable in PATH

While it's documented in the README, it may not be obvious that npm needs Git installed to do many of the things that it does. Also, in some cases – especially on Windows – you may have Git set up in such a way that it's not accessible via your PATH so that npm can find it. This check ensures that Git is available.

Permissions checks

  • Your cache must be readable and writable by the user running npm.
  • Global package binaries must be writable by the user running npm.
  • Your local node_modules path, if you're running npm doctor with a project directory, must be readable and writable by the user running npm.

Validate the checksums of cached packages

When an npm package is published, the publishing process generates a checksum that npm uses at install time to verify that the package didn't get corrupted in transit. npm doctor uses these checksums to validate the package tarballs in your local cache (you can see where that cache is located with npm config get cache). In the event that there are corrupt packages in your cache, you should probably run npm cache clean -f and reset the cache.

Configuration

registry

The base URL of the npm registry.

See Also