mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-14 17:52:44 -04:00
`pnpm runtime set <name> <version> -g` now installs the runtime (Node/Deno/Bun) into the global packages directory and links its binary into the global bin directory, matching the TypeScript pnpm CLI. It previously errored with a "not supported yet" stub. The `<name>@runtime:<version>` selector is routed through the existing global-add pipeline. The wrinkle: pacquet's manifest writer folds a `runtime:<version>` dependency into `engines.runtime` on save, so a globally-installed runtime lands under `engines.runtime` with an empty `dependencies` map. The global scanner and bin-linker read `dependencies`, so without a fix they would link no binary. The global crate now reifies `engines.runtime` / `devEngines.runtime` back into dependencies when reading a group manifest — the same conversion the package manifest reader already applies — so an installed runtime is treated as the direct dependency it is. `list -g`, `remove -g`, and `update -g` therefore see it too. The TypeScript pnpm CLI already ships this feature, so this brings pacquet to parity and needs no TypeScript change; pacquet crates are unpublished, so no changeset is required.