Skip to main content
Version: 4.x

pnpm update

Aliases: up

pnpm update updates packages to their latest version based on the specified range.

When used without arguments, updates all dopependencies. You can use patterns to update all dependencies that match it.


pnpm update [-r] [--filter <package selector>]            [<package pattern> ...]
pnpm recursive update [--filter <package selector>]                      [<package pattern> ...]


pnpm upupdates all dependencies. Adheres ranges specified in package.json
pnpm up --latestupdates all dependencies. Ignores ranges specified in package.json
pnpm up [email protected]updates foo to the latest v2
pnpm up @babel/*updates all dependencies with the @babel scope


--recursive, -r#

Concurrently runs update in all subdirectories with a package.json (excluding node_modules).

Usage examples:

pnpm --recursive updatepnpm --recursive update --depth 100# update typescript to the latest version in every packagepnpm --recursive update [email protected]

--latest, -L#

Added in: v3.2.0

Ignores the version range specified in package.json. Instead, the version specified by the latest tag will be used (potentially upgrading the packages across major versions).

--filter <package_selector>#

Read more about filtering.


Update global packages.


Added in: v4.4.0

pnpm [-r] update --workspace [<pkg>...]

Tries to link all packages from the workspace. Versions are updated to match the versions of packages inside the workspace.

If specific packages are updated, the command will fail if any of the updated dependencies is not found inside the workspace. For instance, the following command fails if express is not a workspace package: pnpm up -r --workspace express.

--prod, -P#

Update packages only in dependencies and optionalDependencies.

--dev, -D#

Update packages only in devDependencies.


Don't update packages in optionalDependencies.

--interactive, -i#

Added in: v4.8.0

Show outdated dependencies and select which ones to update.