Files
pnpm/.changeset/engine-no-native-binary-host.md
T
Zoltan Kochan 0034971746 fix(engine.pm.commands): verify only the pnpm engine that is installed (#14583)
The engine identity check verified every package the env lockfile pins and the host's platform binary of the native wrapper, whichever build was going to run. Below v12 the lockfile pins the JavaScript `pnpm` and the SEA `@pnpm/exe` side by side, so on a host where `@pnpm/exe` ships no binary the switch failed before installing the JavaScript `pnpm`, which is the only build that runs there and never links a platform binary.

Pass the package selected for installation into the identity check, in both the TypeScript v11 CLI and pacquet. Verify that package at the exact version the install is rooted at, plus the host platform package the install would link over its bin. Report a dedicated no-native-binary error when the selected native engine cannot run on the host.

Fixes pnpm/pnpm#13622.
2026-09-06 18:46:13 +02:00

525 B

@pnpm/engine.pm.commands, pnpm, pacquet
@pnpm/engine.pm.commands pnpm pacquet
patch patch patch

The JavaScript pnpm can again switch to the pnpm version a project pins in packageManager on hosts where the native pnpm build ships no binary, such as Alpine Linux with pnpm 10 or an Intel Mac with pnpm 11 #13622.

When the pnpm build being switched to is native and ships no binary for the host, pnpm now names the host target it lacks. pnpm reported that the binary was missing from pnpm-lock.yaml.