v12.0.0-rc.2
📦 pnpmView on GitHub →
✨ 3 features🐛 5 fixes🔧 7 symbols
Summary
Introduces project-aware global shims for executables and fixes several issues related to package installation, build processes, and registry compatibility. The new `globalShims` feature allows globally installed bins to follow project-specific runtime versions.
Migration Steps
- To disable the new `globalShims` feature, set `globalShims: false` in your pnpm configuration.
- To bypass `globalShims` for a single invocation, set the environment variable `PNPM_SHIM_BYPASS=1`.
✨ New Features
- Globally installed bins can now follow the project they are run in via the new `globalShims` setting, allowing for project-aware shims for packages like Node.js, Deno, and Bun. This feature defaults to enabling shims for Node.js, Deno, and Bun, and can be configured per package with policies like `auto`, `always`, or `prompt`.
- The `packageManager` version switch now works correctly with registries that use load-balanced feed proxies or Artifactory-style mirrors where tarball URLs differ from the registry host.
- The automatic `packageManager` version switch and `pnpm self-update` no longer fail when registries do not serve npm signature metadata (e.g., private mirrors). pnpm now fetches signatures from `registry.npmjs.org` for verification.
🐛 Bug Fixes
- `pnpm dlx` and `pnpm create` no longer fail with "Failed to read patch file" when `patchedDependencies` are present in a project; the package is installed unpatched.
- Reduced the warm startup overhead of project-aware managed runtime shims.
- `ng build` and `nuxt build` now function correctly under the global virtual store by adding missing `tslib` and `unplugin` dependencies.
- The automatic `packageManager` version switch now functions correctly on registries whose tarball URLs point to a different host than the registry itself.
- `pnpm setup` no longer causes a `MODULE_TYPELESS_PACKAGE_JSON` warning on every command by declaring `"type": "module"` in the `package.json` for standalone executables.