Skip to main content
Version: 10.x

pnpm config

Aliases: c

Manage the configuration files.

The configuration files are in INI (the global) and YAML (the local) formats.

The local configuration file is located in the root of the project and is named pnpm-workspace.yaml.

The global configuration file is located at one of the following locations:

  • If the $XDG_CONFIG_HOME env variable is set, then $XDG_CONFIG_HOME/pnpm/rc
  • On Windows: ~/AppData/Local/pnpm/config/rc
  • On macOS: ~/Library/Preferences/pnpm/rc
  • On Linux: ~/.config/pnpm/rc

Commands

set <key> <value>

Set the config key to the value provided.

Without the --json flag, it parses the value as plain string:

pnpm config set --location=project nodeVersion 22.0.0

With the --json flag, it parses the value as JSON:

pnpm config set --location=project --json nodeVersion '"22.0.0"'

The --json flag also allows pnpm config set to create arrays and objects:

pnpm config set --location=project --json onlyBuiltDependencies '["react", "react-dom"]'
pnpm config set --location=project --json catalog '{ "react": "19" }'

The set command does not accept a property path.

get <key>

Print the config value for the provided key.

The key can be a simple key:

pnpm config get nodeVersion
pnpm config get --json nodeVersion
pnpm config get --json packageExtensions
pnpm config get --json onlyBuiltDependencies
pnpm config get --json catalog

It can also be a property path:

pnpm config get 'packageExtensions["@babel/parser"].peerDependencies["@babel/types"]'
pnpm config get --json 'packageExtensions["@babel/parser"].peerDependencies["@babel/types"]'
pnpm config get 'onlyBuiltDependencies[0]'
pnpm config get --json 'onlyBuiltDependencies[0]'
pnpm config get catalog.react
pnpm config get --json catalog.react

The syntax of the property path emulates JavaScript property paths.

delete <key>

Remove the config key from the config file.

list

Show all the config settings.

Options

--global, -g

Set the configuration in the global config file.

--location

By default, --location is set to global.

When set to project, the .npmrc file at the nearest package.json will be used. If no .npmrc file is present in the directory, the setting will be written to a pnpm-workspace.yaml file.

When set to global, the performance is the same as setting the --global option.

--json

Make get and list show all the config settings in JSON format and make set parse the value as JSON.