Installs a package and any packages that it depends on. By default, any new package is installed as a prod dependency.

tl;dr

Command Meaning
pnpm add sax save to dependencies
pnpm add -D sax save to devDependencies
pnpm add -O sax save to optionalDependencies
pnpm add sax@next Specify tag next
pnpm add sax@3.0.0 Specify version 3.0.0

Supported package locations

A package can be installed from different locations:

Install from npm registry

pnpm add package-name will install the latest version of package-name from the npm registry.

You may also install packages by:

Install from the workspace

Note that when adding dependencies and working within a workspace, packages will be installed from the configured sources, depending on whether or not link-workspace-packages is set, and use of the workspace: range protocol.

Install from local file system

There are two ways to install from the local file system:

  1. from a tarball file (.tar, .tar.gz, or .tgz)
  2. from a directory

Examples:

pnpm add ./package.tgz
pnpm add ./some-directory

When you install from a directory, a symlink will be created in the current project's node_modules, so it is the same as running pnpm link.

Install from remote gzipped tarball

The argument must start with "http://" or "https://".

Example:

pnpm add https://github.com/indexzero/forever/tarball/v0.5.6

Install from Git repository

pnpm add <git remote url>

Installs the package from the hosted Git provider, cloning it with Git.

You may install from Git by:

Options

--save-prod, -P

This will install one or more packages in your dependencies.

--save-dev, -D

Using --save-dev or -D will install one or more packages in your devDependencies.

--save-optional, -O

Using --save-optional or -O will install one or more packages in your optionalDependencies.

--save-exact, -E

Saved dependencies will be configured with an exact version rather than using pnpm's default semver range operator.

--save-peer

Added in: v3.2.0

Using --save-peer will add one or more packages to peerDependencies and install them as dev dependencies.

--ignore-workspace-root-check, -W

Added in: v3.6.0

Adding a new dependency to the root workspace package fails, unless the --ignore-workspace-root-check or -W flag is used. For instance, pnpm add debug -W.

--global

Install a package globally.

--filter <package_selector>

Read more about filtering.

--workspace

Added in: v4.4.0

Only adds the new dependency if it is found in the workspace.