Change8

v10.1.0

📦 pnpmView on GitHub →
4 features🐛 8 fixes🔧 13 symbols

Summary

This release introduces new commands (`pnpm ignored-builds`, `pnpm approve-builds`), a performance‑focused setting, and a field to ignore built dependencies, while also fixing several bugs around publishing, scripts execution, peerDependencies handling, and internal utilities.

✨ New Features

  • Added `pnpm ignored-builds` command to print list of dependencies with ignored build scripts.
  • Added `pnpm approve-builds` command to approve dependencies for running scripts during installation.
  • Introduced `optimistic-repeat-install` setting to speed up repeat installs when everything is up‑to‑date.
  • Added `pnpm.ignoredBuiltDependencies` field to explicitly list packages that should not be built.

🐛 Bug Fixes

  • Publish command now validates that the package name is valid.
  • `preprepare` and `postprepare` scripts are now executed during `pnpm install`.
  • `workspace:` and `catalog:` prefixes are now allowed in wider version ranges for `peerDependencies`.
  • `pnpm deploy` now inherits the `pnpm` object from the root `package.json`.
  • Deletion of a `node_modules` folder in a sub‑project of a monorepo is detected as out‑of‑date.
  • Fixed infinite loop caused by lifecycle scripts using `pnpm` with `verify-deps-before-run=install`.
  • Replaced `strip-ansi` with built‑in `util.stripVTControlCharacters`.
  • Patched dependencies are no longer printed as ignored dependencies that require a build.

🔧 Affected Symbols

pnpm ignored-builds commandpnpm approve-builds commandoptimistic-repeat-install settingpnpm.ignoredBuiltDependencies fieldpublish command validationpreprepare script executionpostprepare script executionpeerDependencies range handling for workspace: and catalog:pnpm deploy inheritance behaviornode_modules deletion detection in monorepoverify-deps-before-run lifecycle handlingstrip-ansi replacement with util.stripVTControlCharactersignored dependencies printing logic