mirror of
https://github.com/nodejs/node.git
synced 2025-05-13 13:01:31 +00:00

PR-URL: https://github.com/nodejs/node/pull/37177 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
1366 lines
34 KiB
Markdown
1366 lines
34 KiB
Markdown
---
|
|
title: config
|
|
section: 7
|
|
description: More than you probably want to know about npm configuration
|
|
---
|
|
|
|
### Description
|
|
|
|
npm gets its configuration values from the following sources, sorted by priority:
|
|
|
|
#### Command Line Flags
|
|
|
|
Putting `--foo bar` on the command line sets the `foo` configuration
|
|
parameter to `"bar"`. A `--` argument tells the cli parser to stop
|
|
reading flags. Using `--flag` without specifying any value will set
|
|
the value to `true`.
|
|
|
|
Example: `--flag1 --flag2` will set both configuration parameters
|
|
to `true`, while `--flag1 --flag2 bar` will set `flag1` to `true`,
|
|
and `flag2` to `bar`. Finally, `--flag1 --flag2 -- bar` will set
|
|
both configuration parameters to `true`, and the `bar` is taken
|
|
as a command argument.
|
|
|
|
#### Environment Variables
|
|
|
|
Any environment variables that start with `npm_config_` will be
|
|
interpreted as a configuration parameter. For example, putting
|
|
`npm_config_foo=bar` in your environment will set the `foo`
|
|
configuration parameter to `bar`. Any environment configurations that
|
|
are not given a value will be given the value of `true`. Config
|
|
values are case-insensitive, so `NPM_CONFIG_FOO=bar` will work the
|
|
same. However, please note that inside [`scripts`](/using-npm/scripts)
|
|
npm will set its own environment variables and Node will prefer
|
|
those lowercase versions over any uppercase ones that you might set.
|
|
For details see [this issue](https://github.com/npm/npm/issues/14528).
|
|
|
|
Notice that you need to use underscores instead of dashes, so `--allow-same-version`
|
|
would become `npm_config_allow_same_version=true`.
|
|
|
|
#### npmrc Files
|
|
|
|
The four relevant files are:
|
|
|
|
* per-project configuration file (`/path/to/my/project/.npmrc`)
|
|
* per-user configuration file (defaults to `$HOME/.npmrc`; configurable via CLI
|
|
option `--userconfig` or environment variable `$NPM_CONFIG_USERCONFIG`)
|
|
* global configuration file (defaults to `$PREFIX/etc/npmrc`; configurable via
|
|
CLI option `--globalconfig` or environment variable `$NPM_CONFIG_GLOBALCONFIG`)
|
|
* npm's built-in configuration file (`/path/to/npm/npmrc`)
|
|
|
|
See [npmrc](/configuring-npm/npmrc) for more details.
|
|
|
|
#### Default Configs
|
|
|
|
Run `npm config ls -l` to see a set of configuration parameters that are
|
|
internal to npm, and are defaults if nothing else is specified.
|
|
|
|
### Shorthands and Other CLI Niceties
|
|
|
|
The following shorthands are parsed on the command-line:
|
|
|
|
* `-v`: `--version`
|
|
* `-h`, `-?`, `--help`, `-H`: `--usage`
|
|
* `-s`, `--silent`: `--loglevel silent`
|
|
* `-q`, `--quiet`: `--loglevel warn`
|
|
* `-d`: `--loglevel info`
|
|
* `-dd`, `--verbose`: `--loglevel verbose`
|
|
* `-ddd`: `--loglevel silly`
|
|
* `-g`: `--global`
|
|
* `-C`: `--prefix`
|
|
* `-l`: `--long`
|
|
* `-m`: `--message`
|
|
* `-p`, `--porcelain`: `--parseable`
|
|
* `-reg`: `--registry`
|
|
* `-f`: `--force`
|
|
* `-desc`: `--description`
|
|
* `-S`: `--save`
|
|
* `-P`: `--save-prod`
|
|
* `-D`: `--save-dev`
|
|
* `-O`: `--save-optional`
|
|
* `-B`: `--save-bundle`
|
|
* `-E`: `--save-exact`
|
|
* `-y`: `--yes`
|
|
* `-n`: `--yes false`
|
|
* `ll` and `la` commands: `ls --long`
|
|
|
|
If the specified configuration param resolves unambiguously to a known
|
|
configuration parameter, then it is expanded to that configuration
|
|
parameter. For example:
|
|
|
|
```bash
|
|
npm ls --par
|
|
# same as:
|
|
npm ls --parseable
|
|
```
|
|
|
|
If multiple single-character shorthands are strung together, and the
|
|
resulting combination is unambiguously not some other configuration
|
|
param, then it is expanded to its various component pieces. For
|
|
example:
|
|
|
|
```bash
|
|
npm ls -gpld
|
|
# same as:
|
|
npm ls --global --parseable --long --loglevel info
|
|
```
|
|
|
|
### Config Settings
|
|
|
|
#### access
|
|
|
|
* Default: `restricted`
|
|
* Type: Access
|
|
|
|
When publishing scoped packages, the access level defaults to `restricted`. If
|
|
you want your scoped package to be publicly viewable (and installable) set
|
|
`--access=public`. The only valid values for `access` are `public` and
|
|
`restricted`. Unscoped packages _always_ have an access level of `public`.
|
|
|
|
#### all
|
|
|
|
* Default: `false`
|
|
* Type: Boolean
|
|
|
|
When running `npm outdated` and `npm ls`, setting `--all` will show all
|
|
outdated or installed packages, rather than only those directly depended
|
|
upon by the current project.
|
|
|
|
#### allow-same-version
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Prevents throwing an error when `npm version` is used to set the new version
|
|
to the same value as the current version.
|
|
|
|
#### always-auth
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Force npm to always require authentication when accessing the registry,
|
|
even for `GET` requests.
|
|
|
|
#### also
|
|
|
|
* Default: null
|
|
* Type: String
|
|
|
|
When "dev" or "development" and running local `npm shrinkwrap`,
|
|
`npm outdated`, or `npm update`, is an alias for `--dev`.
|
|
|
|
#### audit
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
When "true" submit audit reports alongside `npm install` runs to the default
|
|
registry and all registries configured for scopes. See the documentation
|
|
for [`npm audit`](/commands/npm-audit) for details on what is submitted.
|
|
|
|
#### audit-level
|
|
|
|
* Default: `"low"`
|
|
* Type: `'low'`, `'moderate'`, `'high'`, `'critical'`
|
|
|
|
The minimum level of vulnerability for `npm audit` to exit with
|
|
a non-zero exit code.
|
|
|
|
#### auth-type
|
|
|
|
* Default: `'legacy'`
|
|
* Type: `'legacy'`, `'sso'`, `'saml'`, `'oauth'`
|
|
|
|
What authentication strategy to use with `adduser`/`login`.
|
|
|
|
#### before
|
|
|
|
* Alias: enjoy-by
|
|
* Default: null
|
|
* Type: Date
|
|
|
|
If passed to `npm install`, will rebuild the npm tree such that only versions
|
|
that were available **on or before** the `--before` time get installed.
|
|
If there's no versions available for the current set of direct dependencies, the
|
|
command will error.
|
|
|
|
If the requested version is a `dist-tag` and the given tag does not pass the
|
|
`--before` filter, the most recent version less than or equal to that tag will
|
|
be used. For example, `foo@latest` might install `foo@1.2` even though `latest`
|
|
is `2.0`.
|
|
|
|
#### bin-links
|
|
|
|
* Default: `true`
|
|
* Type: Boolean
|
|
|
|
Tells npm to create symlinks (or `.cmd` shims on Windows) for package
|
|
executables.
|
|
|
|
Set to false to have it not do this. This can be used to work around
|
|
the fact that some file systems don't support symlinks, even on
|
|
ostensibly Unix systems.
|
|
|
|
#### browser
|
|
|
|
* Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"`
|
|
* Type: String or Boolean
|
|
|
|
The browser that is called by npm commands to open websites.
|
|
|
|
Set to `false` to suppress browser behavior and instead print urls to
|
|
terminal.
|
|
|
|
Set to `true` to use default system URL opener.
|
|
|
|
#### ca
|
|
|
|
* Default: The npm CA certificate
|
|
* Type: String, Array or null
|
|
|
|
The Certificate Authority signing certificate that is trusted for SSL
|
|
connections to the registry. Values should be in PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newlines
|
|
replaced by the string "\n". For example:
|
|
|
|
```bash
|
|
ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
|
|
```
|
|
|
|
Set to `null` to only allow "known" registrars, or to a specific CA cert
|
|
to trust only that specific signing authority.
|
|
|
|
Multiple CAs can be trusted by specifying an array of certificates:
|
|
|
|
```bash
|
|
ca[]="..."
|
|
ca[]="..."
|
|
```
|
|
|
|
See also the `strict-ssl` config.
|
|
|
|
#### cafile
|
|
|
|
* Default: `null`
|
|
* Type: path
|
|
|
|
A path to a file containing one or multiple Certificate Authority signing
|
|
certificates. Similar to the `ca` setting, but allows for multiple CA's, as
|
|
well as for the CA information to be stored in a file on disk.
|
|
|
|
#### cache
|
|
|
|
* Default: Windows: `%AppData%\npm-cache`, Posix: `~/.npm`
|
|
* Type: path
|
|
|
|
The location of npm's cache directory. See [`npm cache`](/commands/npm-cache)
|
|
|
|
#### cache-lock-stale
|
|
|
|
* Default: 60000 (1 minute)
|
|
* Type: Number
|
|
|
|
The number of ms before cache folder lockfiles are considered stale.
|
|
|
|
#### cache-lock-retries
|
|
|
|
* Default: 10
|
|
* Type: Number
|
|
|
|
Number of times to retry to acquire a lock on cache folder lockfiles.
|
|
|
|
#### cache-lock-wait
|
|
|
|
* Default: 10000 (10 seconds)
|
|
* Type: Number
|
|
|
|
Number of ms to wait for cache lock files to expire.
|
|
|
|
#### cache-max
|
|
|
|
* Default: Infinity
|
|
* Type: Number
|
|
|
|
**DEPRECATED**: This option has been deprecated in favor of `--prefer-online`.
|
|
|
|
`--cache-max=0` is an alias for `--prefer-online`.
|
|
|
|
#### cache-min
|
|
|
|
* Default: 10
|
|
* Type: Number
|
|
|
|
**DEPRECATED**: This option has been deprecated in favor of `--prefer-offline`.
|
|
|
|
`--cache-min=9999 (or bigger)` is an alias for `--prefer-offline`.
|
|
|
|
#### call
|
|
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
Optional companion option for `npm exec`, `npx` that allows for specifying a
|
|
custom command to be run along with the installed packages.
|
|
|
|
```bash
|
|
npm exec --package yo --package generator-node --call "yo node"
|
|
```
|
|
|
|
#### cert
|
|
|
|
* Default: `null`
|
|
* Type: String
|
|
|
|
A client certificate to pass when accessing the registry. Values should be in
|
|
PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newlines replaced by the string "\n". For example:
|
|
|
|
```bash
|
|
cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
|
|
```
|
|
|
|
It is _not_ the path to a certificate file (and there is no "certfile" option).
|
|
|
|
#### cidr
|
|
|
|
* Default: `null`
|
|
* Type: String, Array, null
|
|
|
|
This is a list of CIDR address to be used when configuring limited access tokens with the `npm token create` command.
|
|
|
|
#### commit-hooks
|
|
|
|
* Default: `true`
|
|
* Type: Boolean
|
|
|
|
Run git commit hooks when using the `npm version` command.
|
|
|
|
#### color
|
|
|
|
* Default: true
|
|
* Type: Boolean or `"always"`
|
|
|
|
If false, never shows colors. If `"always"` then always shows colors.
|
|
If true, then only prints color codes for tty file descriptors.
|
|
|
|
This option can also be changed using the environment: colors are
|
|
disabled when the environment variable `NO_COLOR` is set to any value.
|
|
|
|
#### depth
|
|
|
|
* Default: null
|
|
* Type: null or Number
|
|
|
|
The depth to go when recursing packages for `npm ls`.
|
|
|
|
To make this default to `Infinity` instead of `null`, set `--all`.
|
|
|
|
#### description
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Show the description in `npm search`
|
|
|
|
#### dev
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
\[Deprecated\] Install `dev-dependencies` along with packages.
|
|
|
|
#### dry-run
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Indicates that you don't want npm to make any changes and that it should
|
|
only report what it would have done. This can be passed into any of the
|
|
commands that modify your local installation, eg, `install`, `update`,
|
|
`dedupe`, `uninstall`. This is NOT currently honored by some network related
|
|
commands, eg `dist-tags`, `owner`, etc.
|
|
|
|
#### diff
|
|
|
|
* Default: null
|
|
* Type: String, Array, null
|
|
|
|
Define arguments to compare in `npm diff`.
|
|
|
|
#### diff-name-only
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Prints only filenames when using `npm diff`.
|
|
|
|
#### diff-unified
|
|
|
|
* Type: number
|
|
* Default: `3`
|
|
|
|
The number of lines of context to print in `npm diff`.
|
|
|
|
#### diff-ignore-all-space
|
|
|
|
* Type: Boolean
|
|
* Default: false
|
|
|
|
Ignore whitespace when comparing lines in `npm diff.
|
|
|
|
#### diff-no-prefix
|
|
|
|
* Type: Boolean
|
|
* Default: false
|
|
|
|
Do not show any source or destination prefix in `npm diff` output.
|
|
|
|
#### diff-src-prefix
|
|
|
|
* Type: String
|
|
* Default: `"a/"`
|
|
|
|
Source prefix to be used in `npm diff` output.
|
|
|
|
#### diff-dst-prefix
|
|
|
|
* Type: String
|
|
* Default: `"b/"`
|
|
|
|
Destination prefix to be used in `npm diff` output.
|
|
|
|
#### diff-text
|
|
|
|
* Alias: `-a`
|
|
* Type: Boolean
|
|
* Default: false
|
|
|
|
Treat all files as text in `npm diff`.
|
|
|
|
#### editor
|
|
|
|
* Default: `EDITOR` environment variable if set, or `"vi"` on Posix,
|
|
or `"notepad"` on Windows.
|
|
* Type: path
|
|
|
|
The command to run for `npm edit` or `npm config edit`.
|
|
|
|
#### engine-strict
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If set to true, then npm will stubbornly refuse to install (or even
|
|
consider installing) any package that claims to not be compatible with
|
|
the current Node.js version.
|
|
|
|
#### force
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Removes various protections against unfortunate side effects, common
|
|
mistakes, unnecessary performance degradation, and malicious input.
|
|
|
|
* Allow clobbering non-npm files in global installs.
|
|
* Allow the `npm version` command to work on an unclean git repository.
|
|
* Allow deleting the cache folder with `npm cache clean`.
|
|
* Allow installing packages that have an `engines` declaration requiring a
|
|
different version of npm.
|
|
* Allow installing packages that have an `engines` declaration requiring a
|
|
different version of `node`, even if `--engines-strict` is enabled.
|
|
* Allow `npm audit fix` to install modules outside your stated dependency
|
|
range (including SemVer-major changes).
|
|
* Allow a module to be installed as a direct dependency of itself.
|
|
* Allow unpublishing all versions of a published package.
|
|
* Allow conflicting peerDependencies to be installed in the root project.
|
|
|
|
If you don't have a clear idea of what you want to do, it is strongly
|
|
recommended that you do not use this option!
|
|
|
|
#### foreground-scripts
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Run all build scripts (ie, `preinstall`, `install`, and `postinstall`)
|
|
scripts for installed packages in the foreground process, sharing standard
|
|
input, output, and error with the main npm process.
|
|
|
|
Note that this will generally make installs run slower, and be much
|
|
noisier, but can be useful for debugging.
|
|
|
|
#### format-package-lock
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Format `package-lock.json` or `npm-shrinkwrap.json` as a human readable file.
|
|
|
|
#### fund
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
When "true" displays the message at the end of each `npm install`
|
|
acknowledging the number of dependencies looking for funding.
|
|
See [`npm fund`](/commands/npm-fund) for details.
|
|
|
|
#### fetch-retries
|
|
|
|
* Default: 2
|
|
* Type: Number
|
|
|
|
The "retries" config for the `retry` module to use when fetching
|
|
packages from the registry.
|
|
|
|
#### fetch-retry-factor
|
|
|
|
* Default: 10
|
|
* Type: Number
|
|
|
|
The "factor" config for the `retry` module to use when fetching
|
|
packages.
|
|
|
|
#### fetch-retry-mintimeout
|
|
|
|
* Default: 10000 (10 seconds)
|
|
* Type: Number
|
|
|
|
The "minTimeout" config for the `retry` module to use when fetching
|
|
packages.
|
|
|
|
#### fetch-retry-maxtimeout
|
|
|
|
* Default: 60000 (1 minute)
|
|
* Type: Number
|
|
|
|
The "maxTimeout" config for the `retry` module to use when fetching
|
|
packages.
|
|
|
|
#### fetch-timeout
|
|
|
|
* Default: 300000 (5 minutes)
|
|
* Type: Number
|
|
|
|
The maximum amount of time to wait for HTTP requests to complete.
|
|
|
|
#### git
|
|
|
|
* Default: `"git"`
|
|
* Type: String
|
|
|
|
The command to use for git commands. If git is installed on the
|
|
computer, but is not in the `PATH`, then set this to the full path to
|
|
the git binary.
|
|
|
|
#### git-tag-version
|
|
|
|
* Default: `true`
|
|
* Type: Boolean
|
|
|
|
Tag the commit when using the `npm version` command.
|
|
|
|
#### global
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Operates in "global" mode, so that packages are installed into the
|
|
`prefix` folder instead of the current working directory. See
|
|
[folders](/configuring-npm/folders) for more on the differences in behavior.
|
|
|
|
* packages are installed into the `{prefix}/lib/node_modules` folder, instead of the
|
|
current working directory.
|
|
* bin files are linked to `{prefix}/bin`
|
|
* man pages are linked to `{prefix}/share/man`
|
|
|
|
#### globalconfig
|
|
|
|
* Default: {prefix}/etc/npmrc
|
|
* Type: path
|
|
|
|
The config file to read for global config options.
|
|
|
|
#### global-style
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Causes npm to install the package into your local `node_modules` folder with
|
|
the same layout it uses with the global `node_modules` folder. Only your
|
|
direct dependencies will show in `node_modules` and everything they depend
|
|
on will be flattened in their `node_modules` folders. This obviously will
|
|
eliminate some deduping. If used with `legacy-bundling`, `legacy-bundling` will be
|
|
preferred.
|
|
|
|
#### heading
|
|
|
|
* Default: `"npm"`
|
|
* Type: String
|
|
|
|
The string that starts all the debugging log output.
|
|
|
|
#### https-proxy
|
|
|
|
* Default: null
|
|
* Type: url
|
|
|
|
A proxy to use for outgoing https requests. If the `HTTPS_PROXY` or
|
|
`https_proxy` or `HTTP_PROXY` or `http_proxy` environment variables are set,
|
|
proxy settings will be honored by the underlying `request` library.
|
|
|
|
#### if-present
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If true, npm will not exit with an error code when `run-script` is invoked for
|
|
a script that isn't defined in the `scripts` section of `package.json`. This
|
|
option can be used when it's desirable to optionally run a script when it's
|
|
present and fail if the script fails. This is useful, for example, when running
|
|
scripts that may only apply for some builds in an otherwise generic CI setup.
|
|
|
|
#### ignore-prepublish
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If true, npm will not run `prepublish` scripts.
|
|
|
|
#### ignore-scripts
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If true, npm does not run scripts specified in package.json files.
|
|
|
|
#### include
|
|
|
|
* Default: `[prod|dev|optional|peer]`
|
|
* Type: Array
|
|
|
|
Option that allows for defining which types of dependencies to install.
|
|
|
|
#### init-module
|
|
|
|
* Alias: `init.module`
|
|
* Default: ~/.npm-init.js
|
|
* Type: path
|
|
|
|
A module that will be loaded by the `npm init` command. See the
|
|
documentation for the
|
|
[init-package-json](https://github.com/npm/init-package-json) module
|
|
for more information, or [npm init](/commands/npm-init).
|
|
|
|
#### init-author-name
|
|
|
|
* Alias: `init.author.name`
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
The value `npm init` should use by default for the package author's name.
|
|
|
|
#### init-author-email
|
|
|
|
* Alias: `init.author.email`
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
The value `npm init` should use by default for the package author's email.
|
|
|
|
#### init-author-url
|
|
|
|
* Alias: `init.author.url`
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
The value `npm init` should use by default for the package author's homepage.
|
|
|
|
#### init-license
|
|
|
|
* Alias: `init.license`
|
|
* Default: "ISC"
|
|
* Type: String
|
|
|
|
The value `npm init` should use by default for the package license.
|
|
|
|
#### init-version
|
|
|
|
* Alias: `init.version`
|
|
* Default: "1.0.0"
|
|
* Type: semver
|
|
|
|
The value that `npm init` should use by default for the package
|
|
version number, if not already set in package.json.
|
|
|
|
#### json
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Whether or not to output JSON data, rather than the normal output.
|
|
|
|
This feature is currently experimental, and the output data structures for many
|
|
commands is either not implemented in JSON yet, or subject to change. Only the
|
|
output from `npm ls --json` and `npm search --json` are currently valid.
|
|
|
|
#### key
|
|
|
|
* Default: `null`
|
|
* Type: String
|
|
|
|
A client key to pass when accessing the registry. Values should be in PEM
|
|
format with newlines replaced by the string "\n". For example:
|
|
|
|
```json
|
|
key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"
|
|
```
|
|
|
|
It is _not_ the path to a key file (and there is no "keyfile" option).
|
|
|
|
#### legacy-bundling
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Causes npm to install the package such that versions of npm prior to 1.4,
|
|
such as the one included with node 0.8, can install the package. This
|
|
eliminates all automatic deduping. If used with `global-style` this option
|
|
will be preferred.
|
|
|
|
#### legacy-peer-deps
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Causes npm to completely ignore `peerDependencies` when building a package
|
|
tree, as in npm versions 3 through 6.
|
|
|
|
If a package cannot be installed because of overly strict
|
|
`peerDependencies` that collide, it provides a way to move forward
|
|
resolving the situation.
|
|
|
|
This differs from `--omit=peer`, in that `--omit=peer` will avoid unpacking
|
|
`peerDependencies` on disk, but will still design a tree such that
|
|
`peerDependencies` _could_ be unpacked in a correct place.
|
|
|
|
Use of `legacy-peer-deps` is not recommended, as it will not enforce the
|
|
`peerDependencies` contract that meta-dependencies may rely on.
|
|
|
|
#### link
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If true, then local installs will link if there is a suitable globally
|
|
installed package.
|
|
|
|
Note that this means that local installs can cause things to be
|
|
installed into the global space at the same time. The link is only done
|
|
if one of the two conditions are met:
|
|
|
|
* The package is not already installed globally, or
|
|
* the globally installed version is identical to the version that is
|
|
being installed locally.
|
|
|
|
#### local-address
|
|
|
|
* Default: undefined
|
|
* Type: IP Address
|
|
|
|
The IP address of the local interface to use when making connections
|
|
to the npm registry. Must be IPv4 in versions of Node prior to 0.12.
|
|
|
|
#### loglevel
|
|
|
|
* Default: "notice"
|
|
* Type: String
|
|
* Values: "silent", "error", "warn", "notice", "http", "timing", "info",
|
|
"verbose", "silly"
|
|
|
|
What level of logs to report. On failure, *all* logs are written to
|
|
`npm-debug.log` in the current working directory.
|
|
|
|
Any logs of a higher level than the setting are shown. The default is "notice".
|
|
|
|
#### logs-max
|
|
|
|
* Default: 10
|
|
* Type: Number
|
|
|
|
The maximum number of log files to store.
|
|
|
|
#### long
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Show extended information in `npm ls` and `npm search`.
|
|
|
|
#### maxsockets
|
|
|
|
* Default: 50
|
|
* Type: Number
|
|
|
|
The maximum number of connections to use per origin (protocol/host/port
|
|
combination). Passed to the `http` `Agent` used to make the request.
|
|
|
|
#### message
|
|
|
|
* Default: "%s"
|
|
* Type: String
|
|
|
|
Commit message which is used by `npm version` when creating version commit.
|
|
|
|
Any "%s" in the message will be replaced with the version number.
|
|
|
|
#### node-options
|
|
|
|
* Default: null
|
|
* Type: String
|
|
|
|
Options to pass through to Node.js via the `NODE_OPTIONS` environment
|
|
variable. This does not impact how npm itself is executed but it does
|
|
impact how lifecycle scripts are called.
|
|
|
|
#### node-version
|
|
|
|
* Default: process.version
|
|
* Type: semver or false
|
|
|
|
The node version to use when checking a package's `engines` map.
|
|
|
|
#### noproxy
|
|
|
|
* Default: null
|
|
* Type: String or Array
|
|
|
|
A comma-separated string or an array of domain extensions that a proxy should not be used for.
|
|
|
|
#### offline
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Force offline mode: no network requests will be done during install. To allow
|
|
the CLI to fill in missing cache data, see `--prefer-offline`.
|
|
|
|
#### only
|
|
|
|
* Default: null
|
|
* Type: String
|
|
|
|
When "dev" or "development" and running local `npm install` without any
|
|
arguments, only devDependencies (and their dependencies) are installed.
|
|
|
|
When "dev" or "development" and running local `npm ls`, `npm outdated`, or
|
|
`npm update`, is an alias for `--dev`.
|
|
|
|
When "prod" or "production" and running local `npm install` without any
|
|
arguments, only non-devDependencies (and their dependencies) are
|
|
installed.
|
|
|
|
When "prod" or "production" and running local `npm ls`, `npm outdated`, or
|
|
`npm update`, is an alias for `--production`.
|
|
|
|
#### optional
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Attempt to install packages in the `optionalDependencies` object. Note
|
|
that if these packages fail to install, the overall installation
|
|
process is not aborted.
|
|
|
|
#### otp
|
|
|
|
* Default: null
|
|
* Type: Number
|
|
|
|
This is a one-time password from a two-factor authenticator. It's needed
|
|
when publishing or changing package permissions with `npm access`.
|
|
|
|
#### package-lock
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
If set to false, then ignore `package-lock.json` files when installing. This
|
|
will also prevent _writing_ `package-lock.json` if `save` is true.
|
|
|
|
When package package-locks are disabled, automatic pruning of extraneous
|
|
modules will also be disabled. To remove extraneous modules with
|
|
package-locks disabled use `npm prune`.
|
|
|
|
This option is an alias for `--shrinkwrap`.
|
|
|
|
#### package-lock-only
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If set to true, it will update only the `package-lock.json`,
|
|
instead of checking `node_modules` and downloading dependencies.
|
|
|
|
#### parseable
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Output parseable results from commands that write to
|
|
standard output. For `npm search`, this will be tab-separated table format.
|
|
|
|
#### prefer-offline
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If true, staleness checks for cached data will be bypassed, but missing data
|
|
will be requested from the server. To force full offline mode, use `--offline`.
|
|
|
|
This option is effectively equivalent to `--cache-min=9999999`.
|
|
|
|
#### prefer-online
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If true, staleness checks for cached data will be forced, making the CLI look
|
|
for updates immediately even for fresh package data.
|
|
|
|
#### prefix
|
|
|
|
* Default: see [folders](/configuring-npm/folders)
|
|
* Type: path
|
|
|
|
The location to install global items. If set on the command line, then
|
|
it forces non-global commands to run in the specified folder.
|
|
|
|
#### preid
|
|
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
The "prerelease identifier" to use as a prefix for the "prerelease" part of a
|
|
semver. Like the `rc` in `1.2.0-rc.8`.
|
|
|
|
#### production
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Set to true to run in "production" mode.
|
|
|
|
1. devDependencies are not installed at the topmost level when running
|
|
local `npm install` without any arguments.
|
|
2. Set the NODE_ENV="production" for lifecycle scripts.
|
|
|
|
#### progress
|
|
|
|
* Default: true, unless TRAVIS or CI env vars set.
|
|
* Type: Boolean
|
|
|
|
When set to `true`, npm will display a progress bar during time intensive
|
|
operations, if `process.stderr` is a TTY.
|
|
|
|
Set to `false` to suppress the progress bar.
|
|
|
|
#### proxy
|
|
|
|
* Default: null
|
|
* Type: url
|
|
|
|
A proxy to use for outgoing http requests. If the `HTTP_PROXY` or
|
|
`http_proxy` environment variables are set, proxy settings will be
|
|
honored by the underlying `request` library.
|
|
|
|
#### read-only
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
This is used to mark a token as unable to publish when configuring limited access tokens with the `npm token create` command.
|
|
|
|
#### rebuild-bundle
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Rebuild bundled dependencies after installation.
|
|
|
|
#### registry
|
|
|
|
* Default: https://registry.npmjs.org/
|
|
* Type: url
|
|
|
|
The base URL of the npm package registry.
|
|
|
|
#### rollback
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Remove failed installs.
|
|
|
|
#### save
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Save installed packages to a package.json file as dependencies.
|
|
|
|
When used with the `npm rm` command, it removes it from the `dependencies`
|
|
object.
|
|
|
|
Only works if there is already a package.json file present.
|
|
|
|
#### save-bundle
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If a package would be saved at install time by the use of `--save`,
|
|
`--save-dev`, or `--save-optional`, then also put it in the
|
|
`bundleDependencies` list.
|
|
|
|
When used with the `npm rm` command, it removes it from the
|
|
bundledDependencies list.
|
|
|
|
#### save-prod
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Makes sure that a package will be saved into `dependencies` specifically. This
|
|
is useful if a package already exists in `devDependencies` or
|
|
`optionalDependencies`, but you want to move it to be a production dep. This is
|
|
also the default behavior if `--save` is true, and neither `--save-dev` or
|
|
`--save-optional` are true.
|
|
|
|
#### save-dev
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Save installed packages to a package.json file as `devDependencies`.
|
|
|
|
When used with the `npm rm` command, it removes it from the
|
|
`devDependencies` object.
|
|
|
|
Only works if there is already a package.json file present.
|
|
|
|
#### save-exact
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Dependencies saved to package.json using `--save`, `--save-dev` or
|
|
`--save-optional` will be configured with an exact version rather than
|
|
using npm's default semver range operator.
|
|
|
|
#### save-optional
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Save installed packages to a package.json file as
|
|
optionalDependencies.
|
|
|
|
When used with the `npm rm` command, it removes it from the
|
|
`devDependencies` object.
|
|
|
|
Only works if there is already a package.json file present.
|
|
|
|
#### save-prefix
|
|
|
|
* Default: '^'
|
|
* Type: String
|
|
|
|
Configure how versions of packages installed to a package.json file via
|
|
`--save` or `--save-dev` get prefixed.
|
|
|
|
For example if a package has version `1.2.3`, by default its version is
|
|
set to `^1.2.3` which allows minor upgrades for that package, but after
|
|
`npm config set save-prefix='~'` it would be set to `~1.2.3` which only allows
|
|
patch upgrades.
|
|
|
|
#### scope
|
|
|
|
* Default: the scope of the current project, if any, or ""
|
|
* Type: String
|
|
|
|
Associate an operation with a scope for a scoped registry. Useful when logging
|
|
in to a private registry for the first time:
|
|
`npm login --scope=@organization --registry=registry.organization.com`, which
|
|
will cause `@organization` to be mapped to the registry for future installation
|
|
of packages specified according to the pattern `@organization/package`.
|
|
|
|
#### script-shell
|
|
|
|
* Default: `null`
|
|
* Type: path
|
|
|
|
The shell to use for scripts run with the `npm run` command.
|
|
|
|
#### scripts-prepend-node-path
|
|
|
|
* Default: "warn-only"
|
|
* Type: Boolean, `"auto"` or `"warn-only"`
|
|
|
|
If set to `true`, add the directory in which the current `node` executable
|
|
resides to the `PATH` environment variable when running scripts,
|
|
even if that means that `npm` will invoke a different `node` executable than
|
|
the one which it is running.
|
|
|
|
If set to `false`, never modify `PATH` with that.
|
|
|
|
If set to `"warn-only"`, never modify `PATH` but print a warning if `npm` thinks
|
|
that you may want to run it with `true`, e.g. because the `node` executable
|
|
in the `PATH` is not the one `npm` was invoked with.
|
|
|
|
If set to `auto`, only add that directory to the `PATH` environment variable
|
|
if the `node` executable with which `npm` was invoked and the one that is found
|
|
first on the `PATH` are different.
|
|
|
|
#### searchexclude
|
|
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
Space-separated options that limit the results from search.
|
|
|
|
#### searchopts
|
|
|
|
* Default: ""
|
|
* Type: String
|
|
|
|
Space-separated options that are always passed to search.
|
|
|
|
#### searchlimit
|
|
|
|
* Default: 20
|
|
* Type: Number
|
|
|
|
Number of items to limit search results to. Will not apply at all to legacy
|
|
searches.
|
|
|
|
#### searchstaleness
|
|
|
|
* Default: 900 (15 minutes)
|
|
* Type: Number
|
|
|
|
The age of the cache, in seconds, before another registry request is made if
|
|
using legacy search endpoint.
|
|
|
|
#### shell
|
|
|
|
* Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
|
|
Windows
|
|
* Type: path
|
|
|
|
The shell to run for the `npm explore` command.
|
|
|
|
#### shrinkwrap
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
If set to false, then ignore `npm-shrinkwrap.json` files when installing. This
|
|
will also prevent _writing_ `npm-shrinkwrap.json` if `save` is true.
|
|
|
|
This option is an alias for `--package-lock`.
|
|
|
|
#### sign-git-commit
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If set to true, then the `npm version` command will commit the new package
|
|
version using `-S` to add a signature.
|
|
|
|
Note that git requires you to have set up GPG keys in your git configs
|
|
for this to work properly.
|
|
|
|
#### sign-git-tag
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If set to true, then the `npm version` command will tag the version
|
|
using `-s` to add a signature.
|
|
|
|
Note that git requires you to have set up GPG keys in your git configs
|
|
for this to work properly.
|
|
|
|
#### sso-poll-frequency
|
|
|
|
* Default: 500
|
|
* Type: Number
|
|
|
|
When used with SSO-enabled `auth-type`s, configures how regularly the registry
|
|
should be polled while the user is completing authentication.
|
|
|
|
#### sso-type
|
|
|
|
* Default: 'oauth'
|
|
* Type: 'oauth', 'saml', or null
|
|
|
|
If `--auth-type=sso`, the type of SSO type to use.
|
|
|
|
#### strict-peer-deps
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
If set to `true`, and `--legacy-peer-deps` is not set, then _any_
|
|
conflicting `peerDependencies` will be treated as an install failure, even
|
|
if npm could reasonably guess the appropriate resolution based on non-peer
|
|
dependency relationships.
|
|
|
|
By default, conflicting `peerDependencies` in the dependency graph will be
|
|
resolved using the nearest non-peer dependency specification, even if doing
|
|
so will result in some packages receiving a peer dependency outside the
|
|
range set in their package's `peerDependencies` object. When such and
|
|
override is performed, a warning is printed, explaining the conflict and
|
|
the packages involved. If `--strict-peer-deps` is set, then the warning is
|
|
treated as a failure.
|
|
|
|
#### strict-ssl
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Whether or not to do SSL key validation when making requests to the
|
|
registry via https.
|
|
|
|
See also the `ca` config.
|
|
|
|
#### tag
|
|
|
|
* Default: latest
|
|
* Type: String
|
|
|
|
If you ask npm to install a package and don't tell it a specific version, then
|
|
it will install the specified tag.
|
|
|
|
Also the tag that is added to the package@version specified by the `npm
|
|
tag` command, if no explicit tag is given.
|
|
|
|
#### tag-version-prefix
|
|
|
|
* Default: `"v"`
|
|
* Type: String
|
|
|
|
If set, alters the prefix used when tagging a new version when performing a
|
|
version increment using `npm-version`. To remove the prefix altogether, set it
|
|
to the empty string: `""`.
|
|
|
|
Because other tools may rely on the convention that npm version tags look like
|
|
`v1.0.0`, _only use this property if it is absolutely necessary_. In
|
|
particular, use care when overriding this setting for public packages.
|
|
|
|
#### timing
|
|
|
|
* Default: `false`
|
|
* Type: Boolean
|
|
|
|
If true, writes an `npm-debug` log to `_logs` and timing information to
|
|
`_timing.json`, both in your cache. `_timing.json` is a newline delimited
|
|
list of JSON objects. You can quickly view it with this
|
|
[json](https://www.npmjs.com/package/json) command line:
|
|
`json -g < ~/.npm/_timing.json`.
|
|
|
|
#### tmp
|
|
|
|
* Default: TMPDIR environment variable, or "/tmp"
|
|
* Type: path
|
|
|
|
Where to store temporary files and folders. All temp files are deleted
|
|
on success, but left behind on failure for forensic purposes.
|
|
|
|
#### unicode
|
|
|
|
* Default: false on windows, true on mac/unix systems with a unicode locale
|
|
* Type: Boolean
|
|
|
|
When set to true, npm uses unicode characters in the tree output. When
|
|
false, it uses ascii characters to draw trees.
|
|
|
|
#### update-notifier
|
|
|
|
* Default: true
|
|
* Type: Boolean
|
|
|
|
Set to false to suppress the update notification when using an older
|
|
version of npm than the latest.
|
|
|
|
#### usage
|
|
|
|
* Default: false
|
|
* Type: Boolean
|
|
|
|
Set to show short usage output (like the -H output)
|
|
instead of complete help when doing [`npm help`](/commands/npm-help).
|
|
|
|
#### userconfig
|
|
|
|
* Default: ~/.npmrc
|
|
* Type: path
|
|
|
|
The location of user-level configuration settings.
|
|
|
|
#### umask
|
|
|
|
* Default: 022
|
|
* Type: Octal numeric string in range 0000..0777 (0..511)
|
|
|
|
The "umask" value to use when setting the file creation mode on files
|
|
and folders.
|
|
|
|
Folders and executables are given a mode which is `0777` masked against
|
|
this value. Other files are given a mode which is `0666` masked against
|
|
this value. Thus, the defaults are `0755` and `0644` respectively.
|
|
|
|
#### user-agent
|
|
|
|
* Default: node/{process.version} {process.platform} {process.arch}
|
|
* Type: String
|
|
|
|
Sets a User-Agent to the request header
|
|
|
|
#### version
|
|
|
|
* Default: false
|
|
* Type: boolean
|
|
|
|
If true, output the npm version and exit successfully.
|
|
|
|
Only relevant when specified explicitly on the command line.
|
|
|
|
#### versions
|
|
|
|
* Default: false
|
|
* Type: boolean
|
|
|
|
If true, output the npm version as well as node's `process.versions` map, and
|
|
exit successfully.
|
|
|
|
Only relevant when specified explicitly on the command line.
|
|
|
|
#### viewer
|
|
|
|
* Default: "man" on Posix, "browser" on Windows
|
|
* Type: path
|
|
|
|
The program to use to view help content.
|
|
|
|
Set to `"browser"` to view html help content in the default web browser.
|
|
|
|
### See also
|
|
|
|
* [npm config](/commands/npm-config)
|
|
* [npmrc](/configuring-npm/npmrc)
|
|
* [npm scripts](/using-npm/scripts)
|
|
* [npm folders](/configuring-npm/folders)
|
|
* [npm](/commands/npm)
|