Provided by: npm_6.14.4+ds-1ubuntu2_all bug

NAME

       npm-doctor - Check your environments

   Synopsis
         npm doctor

   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.

   npm ping
       By default, npm installs from the primary npm registry,  registry.npmjs.org.   npm  doctor
       hits  a special ping 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.

   npm -v
       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.

   node -v
       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  of  you 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.

   npm config get registry
       Some of you may be installing from private package registries for your project or company.
       That's great! Others of you 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.

   which git
       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, and see what's  in  that  cache
       with  npm  cache ls – probably more than you were expecting!). In the event that there are
       corrupt packages in your cache, you should probably run npm  cache  clean  and  reset  the
       cache.

   See Also
       • npm help bugs

       • npm help help

       • npm help ping

                                            April 2020                              NPM-DOCTOR(1)