11cb0ef41Sopenharmony_ci# npm - a JavaScript package manager
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ci[![npm version](https://img.shields.io/npm/v/npm.svg)](https://npm.im/npm)
41cb0ef41Sopenharmony_ci[![license](https://img.shields.io/npm/l/npm.svg)](https://npm.im/npm)
51cb0ef41Sopenharmony_ci[![CI - cli](https://github.com/npm/cli/actions/workflows/ci.yml/badge.svg)](https://github.com/npm/cli/actions/workflows/ci.yml)
61cb0ef41Sopenharmony_ci[![Benchmark Suite](https://github.com/npm/cli/actions/workflows/benchmark.yml/badge.svg)](https://github.com/npm/cli/actions/workflows/benchmark.yml)
71cb0ef41Sopenharmony_ci
81cb0ef41Sopenharmony_ci### Requirements
91cb0ef41Sopenharmony_ci
101cb0ef41Sopenharmony_ciOne of the following versions of [Node.js](https://nodejs.org/en/download/) must be installed to run **`npm`**:
111cb0ef41Sopenharmony_ci
121cb0ef41Sopenharmony_ci* `18.x.x` >= `18.17.0`
131cb0ef41Sopenharmony_ci* `20.5.0` or higher
141cb0ef41Sopenharmony_ci
151cb0ef41Sopenharmony_ci### Installation
161cb0ef41Sopenharmony_ci
171cb0ef41Sopenharmony_ci**`npm`** comes bundled with [**`node`**](https://nodejs.org/), & most third-party distributions, by default. Officially supported downloads/distributions can be found at: [nodejs.org/en/download](https://nodejs.org/en/download)
181cb0ef41Sopenharmony_ci
191cb0ef41Sopenharmony_ci#### Direct Download
201cb0ef41Sopenharmony_ci
211cb0ef41Sopenharmony_ciYou can download & install **`npm`** directly from [**npmjs**.com](https://npmjs.com/) using our custom `install.sh` script:
221cb0ef41Sopenharmony_ci
231cb0ef41Sopenharmony_ci```bash
241cb0ef41Sopenharmony_cicurl -qL https://www.npmjs.com/install.sh | sh
251cb0ef41Sopenharmony_ci```
261cb0ef41Sopenharmony_ci
271cb0ef41Sopenharmony_ci#### Node Version Managers
281cb0ef41Sopenharmony_ci
291cb0ef41Sopenharmony_ciIf you're looking to manage multiple versions of **`Node.js`** &/or **`npm`**, consider using a [node version manager](https://github.com/search?q=node+version+manager+archived%3Afalse&type=repositories&ref=advsearch)
301cb0ef41Sopenharmony_ci
311cb0ef41Sopenharmony_ci### Usage
321cb0ef41Sopenharmony_ci
331cb0ef41Sopenharmony_ci```bash
341cb0ef41Sopenharmony_cinpm <command>
351cb0ef41Sopenharmony_ci```
361cb0ef41Sopenharmony_ci
371cb0ef41Sopenharmony_ci### Links & Resources
381cb0ef41Sopenharmony_ci
391cb0ef41Sopenharmony_ci* [**Documentation**](https://docs.npmjs.com/) - Official docs & how-tos for all things **npm**
401cb0ef41Sopenharmony_ci    * Note: you can also search docs locally with `npm help-search <query>`
411cb0ef41Sopenharmony_ci* [**Bug Tracker**](https://github.com/npm/cli/issues) - Search or submit bugs against the CLI
421cb0ef41Sopenharmony_ci* [**Roadmap**](https://github.com/orgs/github/projects/4247/views/1?filterQuery=npm) - Track & follow along with our public roadmap
431cb0ef41Sopenharmony_ci* [**Feedback**](https://github.com/npm/feedback) - Contribute ideas & discussion around the npm registry, website & CLI
441cb0ef41Sopenharmony_ci* [**RFCs**](https://github.com/npm/rfcs) - Contribute ideas & specifications for the API/design of the npm CLI
451cb0ef41Sopenharmony_ci* [**Service Status**](https://status.npmjs.org/) - Monitor the current status & see incident reports for the website & registry
461cb0ef41Sopenharmony_ci* [**Project Status**](https://npm.github.io/statusboard/) - See the health of all our maintained OSS projects in one view
471cb0ef41Sopenharmony_ci* [**Events Calendar**](https://calendar.google.com/calendar/u/0/embed?src=npmjs.com_oonluqt8oftrt0vmgrfbg6q6go@group.calendar.google.com) - Keep track of our Open RFC calls, releases, meetups, conferences & more
481cb0ef41Sopenharmony_ci* [**Support**](https://www.npmjs.com/support) - Experiencing problems with the **npm** [website](https://npmjs.com) or [registry](https://registry.npmjs.org)? File a ticket [here](https://www.npmjs.com/support)
491cb0ef41Sopenharmony_ci
501cb0ef41Sopenharmony_ci### Acknowledgments
511cb0ef41Sopenharmony_ci
521cb0ef41Sopenharmony_ci* `npm` is configured to use the **npm Public Registry** at [https://registry.npmjs.org](https://registry.npmjs.org) by default; Usage of this registry is subject to **Terms of Use** available at [https://npmjs.com/policies/terms](https://npmjs.com/policies/terms)
531cb0ef41Sopenharmony_ci* You can configure `npm` to use any other compatible registry you prefer. You can read more about configuring third-party registries [here](https://docs.npmjs.com/cli/v7/using-npm/registry)
541cb0ef41Sopenharmony_ci
551cb0ef41Sopenharmony_ci### FAQ on Branding
561cb0ef41Sopenharmony_ci
571cb0ef41Sopenharmony_ci#### Is it "npm" or "NPM" or "Npm"?
581cb0ef41Sopenharmony_ci
591cb0ef41Sopenharmony_ci**`npm`** should never be capitalized unless it is being displayed in a location that is customarily all-capitals (ex. titles on `man` pages).
601cb0ef41Sopenharmony_ci
611cb0ef41Sopenharmony_ci#### Is "npm" an acronym for "Node Package Manager"?
621cb0ef41Sopenharmony_ci
631cb0ef41Sopenharmony_ciContrary to popular belief, **`npm`** **is not** in fact an acronym for "Node Package Manager"; It is a recursive bacronymic abbreviation for **"npm is not an acronym"** (if the project was named "ninaa", then it would be an acronym). The precursor to **`npm`** was actually a bash utility named **"pm"**, which was the shortform name of **"pkgmakeinst"** - a bash function that installed various things on various platforms. If **`npm`** were to ever have been considered an acronym, it would be as "node pm" or, potentially "new pm".
64