pnpm <Scripts...>

Fast, disk space efficient package manager




addInstalls a package and any packages that it depends on. By default, any new package is installed as a production dependency
install, iPnpm install is used to install all dependencies for a project. In a CI environment, installation fails if a lockfile is present but needs an update. Inside a workspace, pnpm install installs all dependencies in all the projects. If you want to disable this behavior, set the recursive-install setting to false
install-test, itRuns pnpm install followed immediately by pnpm test. It takes exactly the same arguments as pnpm install
update, upgrade, upPnpm update updates packages to their latest version based on the specified range. When used without arguments, updates all dependencies. You can use patterns to update specific dependencies
remove, rm, uninstall, unRemoves packages from node_modules and from the project's package.json
link, lnMakes the current local package accessible system-wide, or in another location
unlinkUnlinks a system-wide package (inverse of pnpm link). If called without arguments, all linked dependencies will be unlinked. This is similar to yarn unlink, except pnpm re-installs the dependency after removing the external link
importPnpm import generates a pnpm-lock.yaml from an npm package-lock.json (or npm-shrinkwrap.json) file
rebuild, rbRebuild a package
pruneRemoves unnecessary packages
fetchEXPERIMENTAL FEATURE: Fetch packages from a lockfile into virtual store, package manifest is ignored:
auditChecks for known security issues with the installed packages. If security issues are found, try to update your dependencies via pnpm update. If a simple update does not fix all the issues, use overrides to force versions that are not vulnerable. For instance, if lodash@<2.1.0 is vulnerable, use overrides to force lodash@^2.1.0. Details at:
list, lsThis command will output all the versions of packages that are installed, as well as their dependencies, in a tree-structure. Positional arguments are name-pattern@version-range identifiers, which will limit the results to only the packages named. For example, pnpm list "babel-*" "eslint-*" semver@5
outdatedChecks for outdated packages. The check can be limited to a subset of the installed packages by providing arguments (patterns are supported)
whyShows all packages that depend on the specified package
run, run-scriptRuns a script defined in the package's manifest file
execExecute a shell command in scope of a project. node_modules/.bin is added to the PATH, so pnpm exec allows executing commands of dependencies
test, t, tstRuns an arbitrary command specified in the package's test property of its scripts object. The intended usage of the property is to specify a command that runs unit or integration testing for your program
startRuns an arbitrary command specified in the package's start property of its scripts object. If no start property is specified on the scripts object, it will attempt to run node server.js as a default, failing if neither are present. The intended usage of the property is to specify a command that starts your program
publishPublishes a package to the registry. When publishing a package inside a workspace, the LICENSE file from the root of the workspace is packed with the package (unless the package has a license of its own). You may override some fields before publish, using the publishConfig field in package.json. You also can use the to customize the published subdirectory (usually using third party build tools). When running this command recursively (pnpm -r publish), pnpm will publish all the packages that have versions not yet published to the registry
recursive, m, multi, -rRuns a pnpm command recursively on all subdirectories in the package or every available workspace
serverManage a store server
storeManaging the package store