Switch package manager from Yarn to pnpm (#214)

* Switch package manager from Yarn to pnpm

Replace Yarn 3 (Berry) with pnpm 11.12.0 (latest stable):

- Pin packageManager to [email protected].0; add pnpm-lock.yaml
- Remove yarn.lock, .yarnrc.yml, and the bundled .yarn/ release
- Update CI (ci-test, deploy) to use pnpm/action-setup + setup-node
  pnpm cache, with `pnpm install --frozen-lockfile` and pnpm scripts
- Switch Husky pre-commit hook to `pnpm check`
- Add pnpm-workspace.yaml allowlisting esbuild's build script, which
  pnpm 11 otherwise blocks with a hard error on install
- Update CLAUDE.md guidance and drop yarn-specific .gitignore entries

Verified: pnpm install --frozen-lockfile, pnpm check, and pnpm build
all pass locally.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* CI: read Node version from .tool-versions for pnpm 11 compat

pnpm 11.12.0 requires Node >=22.13, but the workflows pinned
node-version: '20' (20.20.2), failing install. Point setup-node at
.tool-versions (22.14.0) so CI and local dev share one source of truth.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
2026-07-13 02:30:39 -05:00
committed by GitHub
co-authored by Claude Opus 4.8
parent b8d1c61dbf
commit 2d14d87a83
12 changed files with 1344 additions and 3047 deletions
+5
View File
@@ -0,0 +1,5 @@
# esbuild ships its native binary via an optional dependency; its postinstall
# is only a launcher optimization. Allowed so pnpm 11 doesn't block install on
# the undecided build script.
allowBuilds:
esbuild: true