# Install pnpm
npm install -g pnpm
# Using corepack (Node.js 16.13+)
corepack enable
corepack prepare pnpm@latest --activate
# Check version
pnpm --version
pnpm -v
| Task | pnpm | npm |
|---|
| Initialize project | pnpm init | npm init |
| Install dependencies | pnpm install | npm install |
| Add package | pnpm add <pkg> | npm install <pkg> |
| Add dev dependency | pnpm add -D <pkg> | npm install -D <pkg> |
| Add global package | pnpm add -g <pkg> | npm install -g <pkg> |
| Remove package | pnpm remove <pkg> | npm uninstall <pkg> |
| Update packages | pnpm update | npm update |
| Run script | pnpm run <script> | npm run <script> |
| Execute binary | pnpm dlx <cmd> | npx <cmd> |
| List packages | pnpm list | npm ls |
| Check outdated | pnpm outdated | npm outdated |
| Run tests | pnpm test | npm test |
| Publish package | pnpm publish | npm publish |
| Audit security | pnpm audit | npm audit |
# Update to latest version
pnpm self-update
# Update to specific version
pnpm self-update 9.0.0
# Update using npm
npm install -g pnpm@latest
# Update using corepack
corepack prepare pnpm@latest --activate
# Install Node.js using pnpm env
pnpm env use --global <version>
pnpm env use --global 20
pnpm env use --global lts
pnpm env use --global latest
# Install specific version
pnpm env use --global 20.10.0
# List available remote Node.js versions
pnpm env list --remote
pnpm env ls --remote
# List available LTS versions
pnpm env list --remote lts
# List installed Node.js versions
pnpm env list
pnpm env ls
# Remove Node.js version
pnpm env remove --global <version>
pnpm env rm --global 18
# Use local Node.js version for project
pnpm env use --global 20
node --version # Verify version
# Create package.json interactively
pnpm init
# Import from package-lock.json or yarn.lock
pnpm import
# Install all dependencies
pnpm install
pnpm i
# Install a package (adds to dependencies)
pnpm add <package>
# Install as dev dependency
pnpm add -D <package>
pnpm add --save-dev <package>
# Install as optional dependency
pnpm add -O <package>
# Install globally
pnpm add -g <package>
# Install specific version
pnpm add <package>@<version>
pnpm add lodash@4.17.21
# Install exact version (no ^ or ~)
pnpm add -E <package>
pnpm add --save-exact <package>
# Install from git
pnpm add git+https://github.com/user/repo.git
# Install peer dependencies
pnpm add --save-peer <package>
# Remove a package
pnpm remove <package>
pnpm rm <package>
pnpm uninstall <package>
# Remove global package
pnpm remove -g <package>
# Remove dev dependency
pnpm remove -D <package>
# Check for outdated packages
pnpm outdated
# Update all packages
pnpm update
pnpm up
# Update specific package
pnpm update <package>
# Update to latest (ignore ranges)
pnpm update --latest
pnpm up -L
# Interactive update
pnpm update --interactive
pnpm up -i
# List installed packages
pnpm list
pnpm ls
# List top-level packages only
pnpm list --depth=0
# List global packages
pnpm list -g
# List with details
pnpm list --long
# Why is a package installed
pnpm why <package>
# Run script from package.json
pnpm run <script>
pnpm <script> # Shorthand if not pnpm command
pnpm build
pnpm test
# Common script shortcuts
pnpm start
pnpm test
pnpm stop
# Run with arguments
pnpm build -- --watch
# List available scripts
pnpm run
# Run script if exists
pnpm run --if-present <script>
# View package details
pnpm info <package>
pnpm view <package>
# View package homepage
pnpm docs <package>
# Check for vulnerabilities
pnpm audit
# Fix vulnerabilities
pnpm audit --fix
# View store path
pnpm store path
# Prune unreferenced packages from store
pnpm store prune
# Check store integrity
pnpm store status
# Add package to store without installing
pnpm store add <package>
# View all config
pnpm config list
# Get config value
pnpm config get <key>
# Set config value
pnpm config set <key> <value>
# Delete config value
pnpm config delete <key>
# Set store directory
pnpm config set store-dir /path/to/store
# Install all workspace dependencies
pnpm install
# Add dependency to specific workspace
pnpm add <package> --filter <workspace>
# Add dependency to root
pnpm add -w <package>
pnpm add --workspace-root <package>
# Run script in specific workspace
pnpm --filter <workspace> <script>
pnpm -F <workspace> <script>
# Run script in all workspaces
pnpm -r <script>
pnpm --recursive <script>
# Run script in all workspaces in parallel
pnpm -r --parallel <script>
# Run only in changed packages
pnpm -r --filter "...[origin/main]" <script>
# Filter by package name
pnpm --filter <package-name> <command>
pnpm -F <package-name> <command>
# Filter by directory
pnpm --filter ./packages/foo <command>
# Filter by glob
pnpm --filter "@scope/*" <command>
# Exclude packages
pnpm --filter "!<package>" <command>
# Filter dependencies of package
pnpm --filter "...^<package>" <command>
# Filter dependents of package
pnpm --filter "...<package>" <command>
# Run package without installing
pnpm dlx <package>
pnpm dlx create-react-app my-app
# Run specific version
pnpm dlx <package>@<version>
# With multiple packages
pnpm dlx -p typescript -p ts-node ts-node script.ts
# Login to registry
pnpm login
# Publish package
pnpm publish
# Publish with access level
pnpm publish --access public
# Dry run
pnpm publish --dry-run
# Publish all workspace packages
pnpm -r publish
# Rebuild native modules
pnpm rebuild
pnpm rb
# Deduplicate dependencies
pnpm dedupe
# Prune unused packages
pnpm prune
# Create lockfile only
pnpm install --lockfile-only
# Fetch packages to store without installing
pnpm fetch
# Link a local package
pnpm link <dir>
pnpm link --global
# Unlink
pnpm unlink
# Execute command in project root
pnpm exec <command>
pnpm exec jest
# Create pnpm-lock.yaml from npm
pnpm import
# Skip running scripts
pnpm install --ignore-scripts
# Offline mode
pnpm install --offline
# Prefer offline (use cache when possible)
pnpm install --prefer-offline
# Frozen lockfile (CI mode)
pnpm install --frozen-lockfile
# Force fresh install
pnpm install --force