v10.29.1
📦 pnpmView on GitHub →
✨ 3 features🐛 10 fixes🔧 23 symbols
Summary
This release introduces support for the `catalog:` protocol in `pnpx` and allows configuring `auditLevel` in `pnpm-workspace.yaml`. Numerous bug fixes address issues related to JSON output, store path resolution, audit command behavior, and dependency handling.
Migration Steps
- If you rely on `shamefullyHoist` being set in `.pnpmfile.cjs`, update your configuration to use `publicHoistPattern` instead, as `shamefullyHoist` is no longer automatically converted.
✨ New Features
- The `pnpm dlx` / `pnpx` command now supports the `catalog:` protocol (e.g., `pnpm dlx shx@catalog:`).
- Support configuring `auditLevel` in the `pnpm-workspace.yaml` file.
- Support bare `workspace:` protocol without version specifier; it is now treated as `workspace:*` and resolves to the concrete version during publish.
🐛 Bug Fixes
- Fixed `pnpm list --json` returning incorrect paths when using global virtual store.
- Fix `pnpm store path` and `pnpm store status` using workspace root for path resolution when `storeDir` is relative.
- Fixed `pnpm run -r` failing with "No projects matched the filters" when an empty `pnpm-workspace.yaml` exists.
- Fixed a bug where `catalogMode: strict` would write the literal string "catalog:" to `pnpm-workspace.yaml` instead of the resolved version specifier when re-adding an existing catalog dependency.
- Fixed the documentation URL shown in `pnpm completion --help` to point to the correct page.
- Skip local `file:` protocol dependencies during `pnpm fetch`, fixing failures in Docker builds when local directory dependencies were unavailable.
- Fixed `pnpm audit --json` to respect the `--audit-level` setting for both exit code and output filtering.
- Fix `pnpm audit --fix` replacing reference overrides (e.g. $foo) with concrete versions.
- Fix `shamefullyHoist` set via `updateConfig` in `.pnpmfile.cjs` not being converted to `publicHoistPattern`.
- Fixed an issue where binaries were not found when running commands like `pnpm exec` if the current directory contained the PATH delimiter character (e.g., ':' on macOS).
Affected Symbols
pnpm dlxpnpxpnpm-workspace.yamlworkspace: protocolpnpm list --jsonpnpm store pathpnpm store statuspnpm run -rcatalogMode: strictpnpm completion --helppnpm fetchfile: protocolpnpm audit --json--audit-leveltar dependencypnpm audit --fixreference overridesshamefullyHoistupdateConfig.pnpmfile.cjspublicHoistPatternpnpm helppnpm exec