Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
pnpm

pnpm

> 包管理
Open source

Nodes

32.0K stars0 likes4 views
WebsiteGitHub

About

Nodes

[简体中文](https://pnpm.io/zh/) | [日本語](https://pnpm.io/ja/) | [한국어](https://pnpm.io/ko/) | [Italiano](https://pnpm.io/it/) | [Português Brasileiro](https://pnpm.io/pt/) Fast, disk space efficient package manager: * **Fast.** Up to 2x faster than the alternatives (see [benchmark](#benchmark)). * **Efficient.** Files inside `node_modules` are linked from a single content-addressable storage. * **[Great for monorepos](https://pnpm.io/workspaces).** * **Strict.** A package can access only dependencies that are specified in its `package.json`. * **Deterministic.** Has a lockfile called `pnpm-lock.yaml`. * **Works as a Node.js version manager.** See [pnpm runtime](https://pnpm.io/11.x/cli/runtime). * **Works everywhere.** Supports Windows, Linux, and macOS. * **Battle-tested.** Used in production by teams of [all sizes](https://pnpm.io/workspaces#usage-examples) since 2016. * **Experimental Rust port.** Includes [pacquet](./pnpm), an experimental port of the CLI written in Rust. * [See the full feature comparison with npm and Yarn](https://pnpm.io/feature-comparison). To quote the [Rush](https://rushjs.io/) team: > Microsoft uses pnpm in Rush repos with hundreds of projects and hundreds of PRs per day, and we’ve found it to be very fast and reliable. ## Platinum Sponsors
## Gold Sponsors
## Silver Sponsors
⏱️ Time.now
Support this project by [becoming a sponsor](https://opencollective.com/pnpm#sponsor). ## Background pnpm uses a content-addressable filesystem to store all files from all module directories on a disk. When using npm, if you have 100 projects using lodash, you will have 100 copies of lodash on disk. With pnpm, lodash will be stored in a content-addressable storage, so: 1. If you depend on different versions of lodash, only the files that differ are added to the store. If lodash has 100 files, and a new version has a change only in one of those files, `pnpm update` will only add 1 new file to the storage. 1. All the files are saved in a single place on the disk. When packages are installed, their files are linked from that single place consuming no additional disk space. Linking is performed using either hard-links or reflinks (copy-on-write). As a result, you save gigabytes of space on your disk and you have a lot faster installations! If you'd like more details about the unique `node_modules` structure that pnpm creates and why it works fine with the Node.js ecosystem, read this small article: [Flat node_modules is not the only way](https://pnpm.io/blog/2020/05/27/flat-node-modules-is-not-the-only-way). 💖 Like this project? Let people know with a [tweet](https://r.pnpm.io/tweet) ## Getting Started - [Installation](https://pnpm.io/installation) - [Usage](https://pnpm.io/pnpm-cli) - [Frequently Asked Questions](https://pnpm.io/faq) - [X](https://x.com/pnpmjs) - [Bluesky](https://bsky.app/profile/pnpm.io) - [Discord](https://r.pnpm.io/chat) ## Benchmark pnpm is up to 2x faster than npm and Yarn classic. See all benchmarks [here](https://r.pnpm.io/benchmarks). Benchmarks on an app with lots of dependencies: ## License [MIT](https://github.com/pnpm/pnpm/blob/main/LICENSE), except the [`pnpr/`](https://github.com/pnpm/pnpm/tree/main/pnpr) directory, which is source-available under the [PolyForm Shield License 1.0.0](https://github.com/pnpm/pnpm/blob/main/pnpr/LICENSE.md).

Issues· 241 open

View all issuesOpen on GitHub
  • #16432

    `autoDedupe` does not work when downgrading a dependency in one package that is a peer dependency of another

    area: lockfilearea: monorepoarea: peersarea: resolutionUpdated Sep 30, 2026
  • #16431

    Range pin in devEngines.packageManager records the running pnpm in the lockfile without checking minimumReleaseAge, so switching to it fails for everyone else

    area: lockfilearea: supply chain securityarea: resolutionUpdated Sep 30, 2026
  • #16436

    Global virtual store ESM loader breaks ts-node on Node.js < 22.15

    Updated Sep 30, 2026
  • #16435

    `--force` help text claims it installs optional dependencies for other platforms

    Updated Sep 30, 2026
  • #16428

    `pnpm install --frozen-lockfile` still rejects a fresh lockfile when an injected package's peer is optional and satisfied by a sibling importer

    area: lockfilearea: monorepoarea: peersregressionarea: resolutionUpdated Sep 30, 2026
  • #9094

    Self Updating on Windows

    type: featurepriority: 2Updated Sep 26, 2026
  • #5174

    Single-Dependency On-Demand Audit

    type: featurepriority: 3idea: from tracker 15277Updated Sep 26, 2026
  • #14655

    [Feature Request] Shell completion for `pnpm exec command`

    type: featurepriority: 3idea: from tracker 15277Updated Sep 26, 2026
  • #2321

    Fail installation if a private project is a prod dep of a non-private project

    area: monorepopriority: 3idea: from tracker 15277Updated Sep 26, 2026
  • #15146

    Open issues created in 2026: what still reproduces on pnpm 12

    type: bugUpdated Sep 26, 2026

> Tags

包管理monorepoNode.js

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 30, 2026
Category包管理
PricingOpen source

> Related tools

N
npm
Node.js 默认包管理器
I
is-gif
Check if a Buffer/Uint8Array is a GIF image
M
minipass-fetch
An implementation of window.fetch in Node.js using Minipass streams