TL;DR

pnpm 11.0.0-rc.0 vừa công bố tháng 4/2026, được InfoQ điểm qua bởi Daniel Curtis. Ba điểm nóng: (1) pnpm giờ là pure ESM và chỉ chạy trên Node.js 22+; (2) phòng thủ supply-chain bật mặc địnhminimumReleaseAge = 1 ngàyblockExoticSubdeps = true; (3) store index chuyển sang SQLite v11 thay cho hàng loạt file JSON, giảm mạnh syscall và tăng tốc install. Cài thử: pnpm self-update next-11.

What's new

Bản v11 là lần đầu pnpm xả toàn bộ hành trang legacy để thẳng tiến ESM và đóng gói mặc định quanh giả định bảo mật mới. Điểm nhấn từ release notes v11.0.0-rc.0:

  • Pure ESM: binary pnpm và runtime đều ESM. Module type mặc định chuyển sang ES modules.
  • Node 22+ bắt buộc: drop hoàn toàn Node 18, 19, 20, 21. Standalone exe yêu cầu glibc 2.27+.
  • Store v11 SQLite: package index dùng SQLite thay cho nhiều file JSON rời, hỗ trợ concurrent access qua WAL mode, bundle manifest sẵn trong index, lưu hex digest thay integrity string đầy đủ.
  • allowBuilds thay thế 5 setting cũ (onlyBuiltDependencies, onlyBuiltDependenciesFile, neverBuiltDependencies, ignoredBuiltDependencies, ignoreDepScripts). strictDepBuilds cũng mặc định bật.
  • Global install cách ly: mỗi pnpm add -g có thư mục riêng với package.json, node_modules, lockfile riêng. Global virtual store bật sẵn.
  • Command mới: pnpm ci, pnpm sbom, pnpm clean, pnpm peers check, pnpm runtime set. Alias ngắn: pnpnx.
  • ESM pnpmfile: hỗ trợ .pnpmfile.mjs, ưu tiên hơn .pnpmfile.cjs.

Why it matters

pnpm 11 đáp thẳng vào ba áp lực thực tế của ecosystem JS năm 2026: chuỗi sự cố supply-chain đầu 2026 (Axios bị compromise, Shai-Hulud worm lan rộng), ngưỡng ESM-only của ecosystem Node, và chi phí I/O của package store dùng hàng trăm nghìn file JSON trên monorepo lớn. Thay vì để user tự tra docs và bật cờ, pnpm chuyển an toàn từ opt-in sang opt-out — một quyết định có tính chính trị kỹ thuật rõ ràng.

Với team đang chạy monorepo 50+ workspace, store v11 là bản vá lâu chờ: index JSON cũ buộc filesystem phải mở/đọc/đóng hàng nghìn file mỗi lần resolve graph. SQLite WAL cho phép nhiều process cùng đọc index song song — một điểm đau cụ thể với CI chạy pnpm install matrix. Còn phía cấu hình, việc đá npm_config_* khỏi nguồn config chính thức là phản ứng với giới hạn npm đặt ra cho tool bên thứ ba — pnpm tách đường sống riêng.

Technical facts

Hạng mụcpnpm 10pnpm 11 RC
Node.js tối thiểuNode 18+Node 22+
Module formatCJSPure ESM
Store indexFile JSON rờiSQLite v11 (WAL, hex digest)
minimumReleaseAgeKhông có mặc định1 ngày (bật sẵn)
blockExoticSubdepsfalsetrue
strictDepBuildsfalsetrue
Build approval5 setting rời rạc1 setting allowBuilds
Cấu hình chính.npmrc + package.jsonpnpm-workspace.yaml (YAML)
Env prefixnpm_config_*pnpm_config_*
Global installSharedCách ly per-package

Về hiệu năng đường HTTP, pnpm chuyển sang undici với Happy Eyeballs, ghi thẳng vào store (bỏ staging directory), pre-allocate tarball download, và dùng NDJSON cho metadata cache. Những thay đổi này cộng dồn lại giúp pnpm install trên cold cache giảm syscall đáng kể nhờ SQLite index.

Use cases

  • Monorepo lớn: store v11 giảm chi phí fs khi có hàng chục workspace chia sẻ dependency.
  • Team bảo mật: mặc định minimumReleaseAge chặn phần lớn kịch bản supply-chain chèn version độc mới publish — cho cộng đồng thời gian detect và takedown.
  • CI/CD: pnpm ci cho clean install xác định, pnpm sbom xuất software bill of materials phục vụ compliance (SLSA, SBOM mandate).
  • Global CLI tools: cài CLI toàn cục không còn dẫm chân nhau về peer dep nữa.

Limitations & pricing

pnpm 11 vẫn miễn phí, MIT license. Chi phí upgrade là chi phí migration:

  • Phải nâng Node lên v22+. Dự án còn trên LTS 20 sẽ bị chặn.
  • Config phải di chuyển khỏi .npmrc và field pnpm trong package.json sang pnpm-workspace.yaml. Script CI đọc npm_config_* phải đổi sang pnpm_config_*.
  • Các setting bị bỏ (allowNonAppliedPatches, ignorePatchFailures, useNodeVersion, pnpm server) sẽ fail nếu còn tham chiếu.
  • Default minimumReleaseAge = 1 day có tác dụng phụ: nếu team cần install version vừa publish trong 24h, phải override bằng minimumReleaseAgeExclude.
  • Standalone binary cần glibc 2.27+ — loại trừ các distro cũ như CentOS 7, Ubuntu 16.04.
  • Đây là RC chưa stable (v11.0.0-rc.0, đã có rc.1), chưa khuyến nghị production.

What's next

Sau vòng RC feedback, pnpm sẽ tung stable v11.0.0. Team đang chuẩn bị codemod hỗ trợ migrate config tự động từ .npmrc/package.json sang YAML. Roadmap còn lại: tiếp tục vi chỉnh undici/HTTP, mở rộng hệ sinh thái ESM pnpmfile, và giám sát thực địa hiệu quả của supply-chain defaults sau các sự cố npm đầu năm 2026.

Muốn thử ngay: pnpm self-update next-11. Nguồn: InfoQ — pnpm 11 RC Release, GitHub release notes v11.0.0-rc.0, pnpm v11 discussion #9238, pnpm docs — Supply chain security.