- npm 是什么?
- 如何安装 npm 并管理 npm 版本
- How to Prevent Permissions Errors
- 如何安装本地包
- Working with package.json
- 如何更新本地安装的包
- 如何卸载本地安装的包
- 如何安装全局包
- 如何更新全局安装的包
- 如何卸载全局安装的包
- 如何创建 Node.js 模块
- How to Publish & Update a Package
- 如何使用语义化版本
- How to Work with Scoped Packages
- How to Label Packages with Dist-tags
- How to Use Two-Factor Authentication
- How to Work with Security Tokens
- How to Change Profile Settings from the CLI
- Understanding Packages and Modules
- npm-access
- npm-adduser
- npm-audit
- npm-bin
- npm-bugs
- npm-build
- npm-bundle
- npm-cache
- npm-ci
- npm-completion
- npm-config
- npm-dedupe
- npm-deprecate
- npm-dist-tag
- npm-docs
- npm-doctor
- npm-edit
- npm-explore
- npm-help
- npm-help-search
- npm-hook
- npm-init
- npm-install
- npm install-ci-test -- Install a project with a clean slate and run tests
- npm install-test -- 安装依赖包并运行测试
- npm-link
- npm-logout
- npm-ls
- npm
- npm-org
- npm-outdated
- npm-owner
- npm-pack
- npm-ping
- npm-prefix
- npm-profile
- npm-prune
- npm-publish
- npm-rebuild
- npm-repo
- npm-restart
- npm-root
- npm-run-script
- npm-search
- npm-shrinkwrap
- npm-star
- npm-stars
- npm-start
- npm-stop
- npm-team
- npm-test
- npm-token
- npm-uninstall
- npm-unpublish
- npm-update
- npm-version
- npm-view
- npm-whoami
- npm-coding-style
- npm-config
- npm-developers
- npm-disputes
- npm-orgs
- npm-registry
- npm-removal
- npm-scope
- npm-scripts
- semver
- npm-folders
- npmrc
- package-lock.json
- npm-package-locks
- package.json
- npm-shrinkwrap.json
- 尝试 node 的最新稳定版本
- Try the latest stable version of npm
- 如果 npm 损坏了
- Try clearing the npm cache
- Common Errors
npm-config
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 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 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
andla
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:
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:
npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info
Per-Package Config Settings
When running scripts (see When publishing scoped packages, the access level defaults to Prevents throwing an error when Force npm to always require authentication when accessing the registry, even for When "dev" or "development" and running local When "true" submit audit reports alongside The minimum level of vulnerability for What authentication strategy to use with Tells npm to create symlinks (or 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. The browser that is called by the 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: Set to Multiple CAs can be trusted by specifying an array of certificates: See also the A path to a file containing one or multiple Certificate Authority signing certificates. Similar to the The location of npm's cache directory. See The number of ms before cache folder lockfiles are considered stale. Number of times to retry to acquire a lock on cache folder lockfiles. Number of ms to wait for cache lock files to expire. DEPRECATED: This option has been deprecated in favor of DEPRECATED: This option has been deprecated in favor of 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: It is not the path to a certificate file (and there is no "certfile" option). This is a list of CIDR address to be used when configuring limited access tokens with the If false, never shows colors. If This option can also be changed using the environment: colors are disabled when the environment variable The depth to go when recursing directories for For Show the description in Install 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, The command to run for 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. Makes various commands more forceful. The "retries" config for the The "factor" config for the The "minTimeout" config for the The "maxTimeout" config for the The command to use for git commands. If git is installed on the computer, but is not in the Tag the commit when using the Run git commit hooks when using the Operates in "global" mode, so that packages are installed into the The config file to read for global config options. Causes npm to install the package into your local The group to use when running package scripts in global mode as the root user. The string that starts all the debugging log output. A proxy to use for outgoing https requests. If the If true, npm will not exit with an error code when If true, npm will not run If true, npm does not run scripts specified in package.json files. A module that will be loaded by the The value The value The value The value The value that 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 A client key to pass when accessing the registry. Values should be in PEM format with newlines replaced by the string "\n". For example: It is not the path to a key file (and there is no "keyfile" option). 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 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 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. What level of logs to report. On failure, all logs are written to Any logs of a higher level than the setting are shown. The default is "notice". This is the stream that is passed to the logs-max The maximum number of log files to store. Show extended information in The maximum number of connections to use per origin (protocol/host/port combination). Passed to the Commit message which is used by Any "%s" in the message will be replaced with the version number. The registry you want to send cli metrics to if Options to pass through to Node.js via the The node version to use when checking a package's A comma-separated string or an array of domain extensions that a proxy should not be used for. Force offline mode: no network requests will be done during install. To allow the CLI to fill in missing cache data, see A node module to When "dev" or "development" and running local When "dev" or "development" and running local When "prod" or "production" and running local When "prod" or "production" and running local Attempt to install packages in the This is a one-time password from a two-factor authenticator. It's needed when publishing or changing package permissions with If set to false, then ignore When package package-locks are disabled, automatic pruning of extraneous modules will also be disabled. To remove extraneous modules with package-locks disabled use This option is an alias for If set to true, it will update only the Output parseable results from commands that write to standard output. For 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 This option is effectively equivalent to If true, staleness checks for cached data will be forced, making the CLI look for updates immediately even for fresh package data. The "prerelease identifier" to use as a prefix for the "prerelease" part of a semver. Like the Set to true to run in "production" mode. When set to Set to A proxy to use for outgoing http requests. If the This is used to mark a token as unable to publish when configuring limited access tokens with the Rebuild bundled dependencies after installation. Remove failed installs. Save installed packages to a package.json file as dependencies. When used with the Only works if there is already a package.json file present. If a package would be saved at install time by the use of When used with the Makes sure that a package will be saved into Save installed packages to a package.json file as When used with the Only works if there is already a package.json file present. Dependencies saved to package.json using Save installed packages to a package.json file as optionalDependencies. When used with the Only works if there is already a package.json file present. Configure how versions of packages installed to a package.json file via For example if a package has version Associate an operation with a scope for a scoped registry. Useful when logging in to a private registry for the first time: The shell to use for scripts run with the If set to If set to If set to If set to Space-separated options that limit the results from search. Space-separated options that are always passed to search. Number of items to limit search results to. Will not apply at all to legacy searches. The age of the cache, in seconds, before another registry request is made if using legacy search endpoint. If true, success/failure metrics will be reported to the registry stored in The shell to run for the If set to false, then ignore This option is an alias for If set to true, then the Note that git requires you to have set up GPG keys in your git configs for this to work properly. If set to true, then the Note that git requires you to have set up GPG keys in your git configs for this to work properly. When used with SSO-enabled If Whether or not to do SSL key validation when making requests to the registry via https. See also the 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 If set, alters the prefix used when tagging a new version when performing a version increment using Because other tools may rely on the convention that npm version tags look like If true, writes an Where to store temporary files and folders. All temp files are deleted on success, but left behind on failure for forensic purposes. When set to true, npm uses unicode characters in the tree output. When false, it uses ascii characters to draw trees. Set to true to suppress the UID/GID switching when running package scripts. If set explicitly to false, then installing as a non-root user will fail. Set to false to suppress the update notification when using an older version of npm than the latest. Set to show short usage output (like the -H output) instead of complete help when doing The UID to set to when running package scripts as root. The location of user-level configuration settings. The "umask" value to use when setting the file creation mode on files and folders. Folders and executables are given a mode which is Sets a User-Agent to the request header If true, output the npm version and exit successfully. Only relevant when specified explicitly on the command line. If true, output the npm version as well as node's Only relevant when specified explicitly on the command line. The program to use to view help content. Set to Config Settings
access
restricted
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
.allow-same-version
npm version
is used to set the new version to the same value as the current version.always-auth
GET
requests.also
npm shrinkwrap
, npm outdated
, or npm update
, is an alias for --dev
.audit
npm install
runs to the default registry and all registries configured for scopes. See the documentation for audit-level"low"
'low'
, 'moderate'
, 'high'
, 'critical'
npm audit
to exit with a non-zero exit code.auth-type
'legacy'
'legacy'
, 'sso'
, 'saml'
, 'oauth'
adduser
/login
.bin-links
true
.cmd
shims on Windows) for package executables.browser
"open"
, Windows: "start"
, Others: "xdg-open"
npm docs
command to open websites.ca
ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
null
to only allow "known" registrars, or to a specific CA cert to trust only that specific signing authority.ca[]="..."
ca[]="..."
strict-ssl
config.cafile
null
ca
setting, but allows for multiple CA's, as well as for the CA information to be stored in a file on disk.cache
%AppData%\npm-cache
, Posix: ~/.npm
cache-lock-stale
cache-lock-retries
cache-lock-wait
cache-max
--prefer-online
.--cache-max=0
is an alias for --prefer-online
.cache-min
--prefer-offline
.--cache-min=9999 (or bigger)
is an alias for --prefer-offline
.cert
null
cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
cidr
null
npm token create
command.color
"always"
"always"
then always shows colors. If true, then only prints color codes for tty file descriptors.NO_COLOR
is set to any value.depth
npm ls
, npm cache ls
, and npm outdated
.npm outdated
, a setting of Infinity
will be treated as 0
since that gives more useful information. To show the outdated status of all packages and dependents, use a large integer value, e.g., npm outdated --depth 9999
description
npm search
dev
dev-dependencies
along with packages.dry-run
install
, update
, dedupe
, uninstall
. This is NOT currently honored by some network related commands, eg dist-tags
, owner
, etc.editor
EDITOR
environment variable if set, or "vi"
on Posix, or "notepad"
on Windows.npm edit
or npm config edit
.engine-strict
force
fetch-retries
retry
module to use when fetching packages from the registry.fetch-retry-factor
retry
module to use when fetching packages.fetch-retry-mintimeout
retry
module to use when fetching packages.fetch-retry-maxtimeout
retry
module to use when fetching packages.git
"git"
PATH
, then set this to the full path to the git binary.git-tag-version
true
npm version
command.commit-hooks
true
npm version
command.global
prefix
folder instead of the current working directory. See globalconfig
global-style
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.group
heading
"npm"
https-proxy
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
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
prepublish
scripts.ignore-scripts
init-module
npm init
command. See the documentation for the init-author-namenpm init
should use by default for the package author's name.init-author-email
npm init
should use by default for the package author's email.init-author-url
npm init
should use by default for the package author's homepage.init-license
npm init
should use by default for the package license.init-version
npm init
should use by default for the package version number, if not already set in package.json.json
npm ls --json
and npm search --json
are currently valid.key
null
key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"
legacy-bundling
global-style
this option will be preferred.link
local-address
loglevel
npm-debug.log
in the current working directory.logstream
long
npm ls
and npm search
.maxsockets
http
Agent
used to make the request.message
npm version
when creating version commit.metrics-registry
registry
(which defaults to "https://registry.npmjs.org/")send-metrics
is true.node-options
NODE_OPTIONS
environment variable. This does not impact how npm itself is executed but it does impact how lifecycle scripts are called.node-version
engines
map.noproxy
offline
--prefer-offline
.onload-script
require()
when npm loads. Useful for programmatic usage.only
npm install
without any arguments, only devDependencies (and their dependencies) are installed.npm ls
, npm outdated
, or npm update
, is an alias for --dev
.npm install
without any arguments, only non-devDependencies (and their dependencies) are installed.npm ls
, npm outdated
, or npm update
, is an alias for --production
.optional
optionalDependencies
object. Note that if these packages fail to install, the overall installation process is not aborted.otp
npm access
.package-lock
package-lock.json
files when installing. This will also prevent writing package-lock.json
if save
is true.npm prune
.--shrinkwrap
.package-lock-only
package-lock.json
, instead of checking node_modules
and downloading dependencies.parseable
npm search
, this will be tab-separated table format.prefer-offline
--offline
.--cache-min=9999999
.prefer-online
prefix
rc
in 1.2.0-rc.8
.production
npm install
without any arguments.progress
true
, npm will display a progress bar during time intensive operations, if process.stderr
is a TTY.false
to suppress the progress bar.proxy
HTTP_PROXY
or http_proxy
environment variables are set, proxy settings will be honored by the underlying request
library.read-only
npm token create
command.rebuild-bundle
registry
save
npm rm
command, it removes it from the dependencies
object.save-bundle
--save
, --save-dev
, or --save-optional
, then also put it in the bundleDependencies
list.npm rm
command, it removes it from the bundledDependencies list.save-prod
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
devDependencies
.npm rm
command, it removes it from the devDependencies
object.save-exact
--save
, --save-dev
or --save-optional
will be configured with an exact version rather than using npm's default semver range operator.save-optional
npm rm
command, it removes it from the devDependencies
object.save-prefix
--save
or --save-dev
get prefixed.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
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
null
npm run
command.scripts-prepend-node-path
"auto"
or "warn-only"
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.false
, never modify PATH
with that."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.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
searchopts
searchlimit
searchstaleness
send-metrics
metrics-registry
. These requests contain the number of successful and failing runs of the npm CLI and the time period overwhich those counts were gathered. No identifying information is included in these requests.shell
npm explore
command.shrinkwrap
npm-shrinkwrap.json
files when installing. This will also prevent writing npm-shrinkwrap.json
if save
is true.--package-lock
.sign-git-commit
npm version
command will commit the new package version using -S
to add a signature.sign-git-tag
npm version
command will tag the version using -s
to add a signature.sso-poll-frequency
auth-type
s, configures how regularly the registry should be polled while the user is completing authentication.sso-type
--auth-type=sso
, the type of SSO type to use.strict-ssl
ca
config.tag
npm tag
command, if no explicit tag is given.tag-version-prefix
"v"
npm-version
. To remove the prefix altogether, set it to the empty string: ""
.v1.0.0
, only use this property if it is absolutely necessary. In particular, use care when overriding this setting for public packages.timing
false
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 tmpunicode
unsafe-perm
update-notifier
usage
user
userconfig
umask
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
version
versions
process.versions
map, and exit successfully.viewer
"browser"
to view html help content in the default web browser.See Also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论