pnpm logo

pnpm

pnpm

hairyf/skills175installs19stars

SKILL.md

Full skill instructions

pnpm is a fast, disk space efficient package manager. It uses a content-addressable store to deduplicate packages across all projects on a machine, saving significant disk space. pnpm enforces strict dependency resolution by default, preventing phantom dependencies. Configuration should preferably be placed in pnpm-workspace.yaml for pnpm-specific settings.

Important: When working with pnpm projects, agents should check for pnpm-workspace.yaml and .npmrc files to understand workspace structure and configuration. Always use --frozen-lockfile in CI environments.

The skill is based on pnpm 10.x, generated at 2026-02-01.

Core

TopicDescriptionReference
InstallationStandalone script, Corepack, npm, system package managerscore-installation
CLI CommandsInstall, add, remove, update, run, exec, dlx, and workspace commandscore-cli
Configurationpnpm-workspace.yaml, .npmrc settings, and package.json fieldscore-config
WorkspacesMonorepo support with filtering, workspace protocol, and shared lockfilecore-workspaces
StoreContent-addressable storage, hard links, and disk efficiencycore-store
Package Sourcesnpm, JSR, workspace, Git, tarball—trusted and exotic sourcescore-package-sources
ErrorsCommon error codes and resolutionscore-errors

Features

TopicDescriptionReference
FilteringRich selector syntax for --filter (deps, dependents, changed, globs)features-filtering
CatalogsCentralized dependency version management for workspacesfeatures-catalogs
OverridesForce specific versions of dependencies including transitivefeatures-overrides
PatchesModify third-party packages with custom fixesfeatures-patches
AliasesInstall packages under custom names using npm: protocolfeatures-aliases
HooksCustomize resolution with .pnpmfile.cjs hooksfeatures-hooks
Peer DependenciesAuto-install, strict mode, and dependency rulesfeatures-peer-deps
Config DependenciesShare hooks, catalogs, patches across projectsfeatures-config-dependencies
Git Branch LockfilesBranch-specific lockfiles to avoid merge conflictsfeatures-git-branch-lockfiles
ChangesetsMonorepo versioning and publishingfeatures-changesets
Supply Chain SecurityallowBuilds, blockExoticSubdeps, trustPolicyfeatures-supply-chain-security
FindersSearch dependency graph by package properties (v10.16+)features-finders
CompletionShell tab completion (Bash, Zsh, Fish)features-completion
ScriptsLifecycle scripts and pnpm:devPreinstallfeatures-scripts
CacheMetadata cache commands (list, view, delete)features-cache
Node.js EnvManage Node.js versions (pnpm env use/add/remove)features-env
Publish & Deploypublish, pack, deploy, fetch for Docker and registryfeatures-publish-deploy

Best Practices

TopicDescriptionReference
CI/CD SetupGitHub Actions, GitLab CI, Docker, and caching strategiesbest-practices-ci
DockerBuildKit cache, pnpm fetch, pnpm deploy for monoreposbest-practices-docker
ProductionLockfile deployment, offline installbest-practices-production
Only Allow pnpmEnforce pnpm with preinstall (only-allow)best-practices-only-allow-pnpm
TypeScriptpreserveSymlinks, packageExtensions, @pnpm/plugin-types-fixerbest-practices-typescript
PodmanBtrfs reflinks, store and node_modules volume mountsbest-practices-podman
GitLockfile commit and merge conflict resolutionbest-practices-git
MigrationMigrating from npm/Yarn, handling phantom deps, monorepo migrationbest-practices-migration
PerformanceInstall optimizations, store caching, workspace parallelizationbest-practices-performance

Advanced

TopicDescriptionReference
Limitationsnpm lockfile ignored, binstubs are shell scriptsadvanced-limitations