pnpm remove edits the manifest and then re-resolved the whole graph, although its only lockfile drift is the importer edges it deleted — exactly what the removal fast path absorbs. pacquet: give remove its own ProjectMutation::UninstallSome instead of the NoInstall it shared with link, import, fetch, and rebuild, and stop forcing prefer_frozen_lockfile off; the gate admits the new variant via may_fast_update_lockfile. TypeScript: apply the uninstallSome manifest edit to the context projects before the fast-path dispatch, and admit install+uninstallSome mutation sets to the fast update and the frozen-like install. Explicitly frozen runs keep their stricter behavior; the resolution path is unchanged. When the removal handler declines, the freshness check fails and the install re-resolves as before. Related to pnpm/pnpm#13696.
404 B
404 B
@pnpm/installing.deps-installer, pacquet, pnpm
| @pnpm/installing.deps-installer | pacquet | pnpm |
|---|---|---|
| patch | patch | patch |
pnpm remove no longer re-resolves the dependency graph. The removed dependency's entries are dropped from pnpm-lock.yaml and anything they made unreachable is pruned, without registry access. The install still falls back to a full resolution when a surviving package resolves a peer dependency through the removed one.