Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

npm-doctor (1)

Name

npm-doctor - Check your npm environment Synopsis npm doctor 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: o Node.js and git must be executable by npm. o The primary npm registry, registry.npmjs.com, or another service that uses the registry API, is available. o The directories that npm uses, node_modules (both locally and glob- ally), exist and can be written by the current user. o The npm cache exists, and the package tarballs within it aren't cor- rupt. 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, run- ning 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, reg- istry.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 sup- ported 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 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 You may be installing from private package registries for your project or company. That's great! Others may be following tutorials or Stack- Overflow questions in an effort to troubleshoot problems you may be having. Sometimes, this may entail changing the registry you're point- ing 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 reg- istry. 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 o Your cache must be readable and writable by the user running npm. o Global package binaries must be writable by the user running npm. o 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 o Default: "https://registry.npmjs.org/" o Type: URL The base URL of the npm registry. See Also o npm help bugs o npm help help o npm help ping

Synopsis

Please see following description for synopsis

Description

NPM-DOCTOR(1)                                                    NPM-DOCTOR(1)



NAME
       npm-doctor - Check your npm environment

   Synopsis
         npm doctor

       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:

       o Node.js and git must be executable by npm.

       o The primary npm registry, registry.npmjs.com, or another service that
         uses the registry API, is available.

       o The  directories  that npm uses, node_modules (both locally and glob-
         ally), exist and can be written by the current user.

       o The npm cache exists, and the package tarballs within it aren't  cor-
         rupt.


       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, run-
       ning 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,  reg-
       istry.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 sup-
       ported 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  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
       You  may be installing from private package registries for your project
       or company. That's great! Others may be following tutorials  or  Stack-
       Overflow  questions  in  an  effort to troubleshoot problems you may be
       having.  Sometimes, this may entail changing the registry you're point-
       ing  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  reg-
       istry.

   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
       o Your cache must be readable and writable by the user running npm.

       o Global package binaries must be writable by the user running npm.

       o 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
       o Default: "https://registry.npmjs.org/"

       o Type: URL


       The base URL of the npm registry.

   See Also
       o npm help bugs

       o npm help help

       o npm help ping




ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------------+
       |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
       +---------------+--------------------------+
       |Availability   | runtime/nodejs/nodejs-18 |
       +---------------+--------------------------+
       |Stability      | Pass-thru volatile       |
       +---------------+--------------------------+

NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source    was   downloaded   from    https://github.com/nodejs/node/ar-
       chive/v18.1.0.zip.

       Further information about this software can be found on the open source
       community website at https://github.com/nodejs/node.



                                  April 2022                     NPM-DOCTOR(1)