--- 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: <!-- AUTOGENERATED CONFIG SHORTHANDS --> 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 <!-- AUTOGENERATED CONFIG DESCRIPTIONS --> ### See also * [npm config](/commands/npm-config) * [npmrc](/configuring-npm/npmrc) * [npm scripts](/using-npm/scripts) * [npm folders](/configuring-npm/folders) * [npm](/commands/npm)
Generated by dwww version 1.15 on Sun Jun 30 10:30:50 CEST 2024.