Reference articles on history, science, culture and more
Encyclopedia

Pnpm

JavaScript package manager

Image credit is listed at the end of this article.

pnpm (short for Performant npm) is one of the main JavaScript package managers, originally developed in 2016 by Rico Sta. Cruz for the Node.js JavaScript runtime environment as a disk space-efficient alternative to npm.

01History

The first commit to the pnpm repository was made on 27 January 2016. The pnpm project was inspired by Alexander Gugel’s ied, an early experiment that used symbolic links to organise node_modules. The first stable release (v1.0.0) arrived on 28 June 2017. Over the following years, pnpm gained traction for its novel approach to dependency hoisting and its ability to handle large monorepos efficiently. On August 26, 2026, pnpm version 12.0 was released, which was a rewrite of pnpm from TypeScript to Rust.

02Technical design

pnpm's core innovation is its use of a global content-addressable store to manage dependencies. Instead of copying files into each project's node_modules folder, it stores a single copy of each package version in a central location (e.g., ~/.pnpm-store) and creates hard links from the project to these files. Symbolic links are then used to construct the dependency tree within the project.

Watch videos about PnpmExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Pnpm, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Images, from Wikimedia Commons:

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.