194 lines
5.7 KiB
Groff
194 lines
5.7 KiB
Groff
.TH "NPM" "1" "February 2022" "" ""
|
|
.SH "NAME"
|
|
\fBnpm\fR \- javascript package manager
|
|
.SS Synopsis
|
|
.P
|
|
.RS 2
|
|
.nf
|
|
npm <command> [args]
|
|
.fi
|
|
.RE
|
|
.SS Version
|
|
.P
|
|
8\.5\.0
|
|
.SS Description
|
|
.P
|
|
npm is the package manager for the Node JavaScript platform\. It puts
|
|
modules in place so that node can find them, and manages dependency
|
|
conflicts intelligently\.
|
|
.P
|
|
It is extremely configurable to support a variety of use cases\. Most
|
|
commonly, you use it to publish, discover, install, and develop node
|
|
programs\.
|
|
.P
|
|
Run \fBnpm help\fP to get a list of available commands\.
|
|
.SS Important
|
|
.P
|
|
npm comes preconfigured to use npm's public registry at
|
|
https://registry\.npmjs\.org by default\. Use of the npm public registry is
|
|
subject to terms of use available at
|
|
https://docs\.npmjs\.com/policies/terms\.
|
|
.P
|
|
You can configure npm to use any compatible registry you like, and even
|
|
run your own registry\. Use of someone else's registry is governed by
|
|
their terms of use\.
|
|
.SS Introduction
|
|
.P
|
|
You probably got npm because you want to install stuff\.
|
|
.P
|
|
The very first thing you will most likely want to run in any node
|
|
program is \fBnpm install\fP to install its dependencies\.
|
|
.P
|
|
You can also run \fBnpm install blerg\fP to install the latest version of
|
|
"blerg"\. Check out npm help \fBinstall\fP for more
|
|
info\. It can do a lot of stuff\.
|
|
.P
|
|
Use the \fBnpm search\fP command to show everything that's available in the
|
|
public registry\. Use \fBnpm ls\fP to show everything you've installed\.
|
|
.SS Dependencies
|
|
.P
|
|
If a package lists a dependency using a git URL, npm will install that
|
|
dependency using the \fBgit\fP \fIhttps://github\.com/git\-guides/install\-git\fR
|
|
command and will generate an error if it is not installed\.
|
|
.P
|
|
If one of the packages npm tries to install is a native node module and
|
|
requires compiling of C++ Code, npm will use
|
|
node\-gyp \fIhttps://github\.com/nodejs/node\-gyp\fR for that task\.
|
|
For a Unix system, node\-gyp \fIhttps://github\.com/nodejs/node\-gyp\fR
|
|
needs Python, make and a buildchain like GCC\. On Windows,
|
|
Python and Microsoft Visual Studio C++ are needed\. For more information
|
|
visit the node\-gyp repository \fIhttps://github\.com/nodejs/node\-gyp\fR and
|
|
the node\-gyp Wiki \fIhttps://github\.com/nodejs/node\-gyp/wiki\fR\|\.
|
|
.SS Directories
|
|
.P
|
|
See npm help \fBfolders\fP to learn about where npm puts
|
|
stuff\.
|
|
.P
|
|
In particular, npm has two modes of operation:
|
|
.RS 0
|
|
.IP \(bu 2
|
|
local mode:
|
|
npm installs packages into the current project directory, which
|
|
defaults to the current working directory\. Packages install to
|
|
\fB\|\./node_modules\fP, and bins to \fB\|\./node_modules/\.bin\fP\|\.
|
|
.IP \(bu 2
|
|
global mode:
|
|
npm installs packages into the install prefix at
|
|
\fB$npm_config_prefix/lib/node_modules\fP and bins to
|
|
\fB$npm_config_prefix/bin\fP\|\.
|
|
|
|
.RE
|
|
.P
|
|
Local mode is the default\. Use \fB\-g\fP or \fB\-\-global\fP on any command to
|
|
run in global mode instead\.
|
|
.SS Developer Usage
|
|
.P
|
|
If you're using npm to develop and publish your code, check out the
|
|
following help topics:
|
|
.RS 0
|
|
.IP \(bu 2
|
|
json:
|
|
Make a package\.json file\. See
|
|
npm help \fBpackage\.json\fP\|\.
|
|
.IP \(bu 2
|
|
link:
|
|
Links your current working code into Node's path, so that you don't
|
|
have to reinstall every time you make a change\. Use npm help \fBnpm
|
|
link\fP to do this\.
|
|
.IP \(bu 2
|
|
install:
|
|
It's a good idea to install things if you don't need the symbolic
|
|
link\. Especially, installing other peoples code from the registry is
|
|
done via npm help \fBinstall\fP
|
|
.IP \(bu 2
|
|
adduser:
|
|
Create an account or log in\. When you do this, npm will store
|
|
credentials in the user config file config file\.
|
|
.IP \(bu 2
|
|
publish:
|
|
Use the npm help \fBpublish\fP command to upload your
|
|
code to the registry\.
|
|
|
|
.RE
|
|
.SS Configuration
|
|
.P
|
|
npm is extremely configurable\. It reads its configuration options from
|
|
5 places\.
|
|
.RS 0
|
|
.IP \(bu 2
|
|
Command line switches:
|
|
Set a config with \fB\-\-key val\fP\|\. All keys take a value, even if they
|
|
are booleans (the config parser doesn't know what the options are at
|
|
the time of parsing)\. If you do not provide a value (\fB\-\-key\fP) then
|
|
the option is set to boolean \fBtrue\fP\|\.
|
|
.IP \(bu 2
|
|
Environment Variables:
|
|
Set any config by prefixing the name in an environment variable with
|
|
\fBnpm_config_\fP\|\. For example, \fBexport npm_config_key=val\fP\|\.
|
|
.IP \(bu 2
|
|
User Configs:
|
|
The file at \fB$HOME/\.npmrc\fP is an ini\-formatted list of configs\. If
|
|
present, it is parsed\. If the \fBuserconfig\fP option is set in the cli
|
|
or env, that file will be used instead\.
|
|
.IP \(bu 2
|
|
Global Configs:
|
|
The file found at \fB\|\./etc/npmrc\fP (relative to the global prefix will be
|
|
parsed if it is found\. See npm help \fBprefix\fP for
|
|
more info on the global prefix\. If the \fBglobalconfig\fP option is set
|
|
in the cli, env, or user config, then that file is parsed instead\.
|
|
.IP \(bu 2
|
|
Defaults:
|
|
npm's default configuration options are defined in
|
|
lib/utils/config\-defs\.js\. These must not be changed\.
|
|
|
|
.RE
|
|
.P
|
|
See npm help \fBconfig\fP for much much more information\.
|
|
.SS Contributions
|
|
.P
|
|
Patches welcome!
|
|
.P
|
|
If you would like to help, but don't know what to work on, read the
|
|
contributing
|
|
guidelines \fIhttps://github\.com/npm/cli/blob/latest/CONTRIBUTING\.md\fR and
|
|
check the issues list\.
|
|
.SS Bugs
|
|
.P
|
|
When you find issues, please report them:
|
|
https://github\.com/npm/cli/issues
|
|
.P
|
|
Please be sure to follow the template and bug reporting guidelines\.
|
|
.SS Feature Requests
|
|
.P
|
|
Discuss new feature ideas on our discussion forum:
|
|
.RS 0
|
|
.IP \(bu 2
|
|
https://github\.com/npm/feedback
|
|
|
|
.RE
|
|
.P
|
|
Or suggest formal RFC proposals:
|
|
.RS 0
|
|
.IP \(bu 2
|
|
https://github\.com/npm/rfcs
|
|
|
|
.RE
|
|
.SS See Also
|
|
.RS 0
|
|
.IP \(bu 2
|
|
npm help help
|
|
.IP \(bu 2
|
|
npm help package\.json
|
|
.IP \(bu 2
|
|
npm help npmrc
|
|
.IP \(bu 2
|
|
npm help config
|
|
.IP \(bu 2
|
|
npm help install
|
|
.IP \(bu 2
|
|
npm help prefix
|
|
.IP \(bu 2
|
|
npm help publish
|
|
|
|
.RE
|