Skip to content

Migrate from npm to pnpm#64

Merged
jasonmadigan merged 6 commits into
mainfrom
63-migrate-npm-to-pnpm
Jun 4, 2026
Merged

Migrate from npm to pnpm#64
jasonmadigan merged 6 commits into
mainfrom
63-migrate-npm-to-pnpm

Conversation

@jasonmadigan

Copy link
Copy Markdown
Collaborator

Summary

Replaces npm with pnpm across the frontend toolchain. pnpm's strict node_modules isolation prevents phantom dependency access, and its security defaults (lifecycle script blocking, minimum release age, exotic subdep blocking) harden the supply chain.

Closes #63

Changes

  • Swap lockfiles: delete package-lock.json and yarn.lock, generate pnpm-lock.yaml
  • Configure .npmrc with strict peers, auto-install peers, minimum release age, exotic subdep blocking, strict dep builds
  • Pin pnpm version via packageManager field in package.json
  • Update both Dockerfiles: corepack enable pnpm, pnpm install --frozen-lockfile, pnpm run build
  • Update CI workflow: add pnpm/action-setup@v4, swap all npm/npx commands
  • Update Makefile, docs, and Claude commands for pnpm

Test evidence

  • pnpm install -- clean (476 packages)
  • pnpm run build -- compiled successfully (Turbopack)
  • pnpm exec vitest run -- 20/20 tests pass
  • Dockerfiles reviewed for correctness (corepack, frozen-lockfile, layer ordering)
  • No phantom dependency imports (strict peers + successful build)

Delete package-lock.json and yarn.lock, generate pnpm-lock.yaml
via pnpm import. Configure .npmrc with strict-peer-dependencies
and auto-install-peers. Approve build scripts for sharp and
unrs-resolver in package.json.

Refs #63

Signed-off-by: Jason Madigan <[email protected]>
Build stage: corepack enable pnpm, pnpm install --frozen-lockfile,
pnpm run build. Runtime stage: remove npm from apt-get, use
node_modules/.bin/next directly for supervisor.

Refs #63

Signed-off-by: Jason Madigan <[email protected]>
CI: add pnpm/action-setup@v4, use pnpm install/exec.
Makefile: npm run dev -> pnpm run dev, npx -> pnpm exec.
Screenshots command: npm install -> pnpm add -D.

Refs #63

Signed-off-by: Jason Madigan <[email protected]>
README: npm install -> pnpm install, add pnpm to prerequisites.
CLAUDE.md: npm install -> pnpm install.

Refs #63

Signed-off-by: Jason Madigan <[email protected]>
…r pin

- playwright.config.ts: npm run dev -> pnpm run dev
- .npmrc: add minimum-release-age, block-exotic-subdeps, strict-dep-builds
- package.json: add packageManager field pinning [email protected]

Signed-off-by: Jason Madigan <[email protected]>
@jasonmadigan
jasonmadigan marked this pull request as ready for review June 4, 2026 20:47
@jasonmadigan
jasonmadigan merged commit c22cc87 into main Jun 4, 2026
1 check passed
@jasonmadigan
jasonmadigan deleted the 63-migrate-npm-to-pnpm branch June 14, 2026 18:15
shanetinklenberg pushed a commit to shanetinklenberg/tracefinity that referenced this pull request Jun 28, 2026
* Replace npm/yarn with pnpm lockfile and config

Delete package-lock.json and yarn.lock, generate pnpm-lock.yaml
via pnpm import. Configure .npmrc with strict-peer-dependencies
and auto-install-peers. Approve build scripts for sharp and
unrs-resolver in package.json.

Refs tracefinity#63

Signed-off-by: Jason Madigan <[email protected]>

* Update Dockerfiles for pnpm

Build stage: corepack enable pnpm, pnpm install --frozen-lockfile,
pnpm run build. Runtime stage: remove npm from apt-get, use
node_modules/.bin/next directly for supervisor.

Refs tracefinity#63

Signed-off-by: Jason Madigan <[email protected]>

* Update CI, Makefile, and commands for pnpm

CI: add pnpm/action-setup@v4, use pnpm install/exec.
Makefile: npm run dev -> pnpm run dev, npx -> pnpm exec.
Screenshots command: npm install -> pnpm add -D.

Refs tracefinity#63

Signed-off-by: Jason Madigan <[email protected]>

* Update docs for pnpm

README: npm install -> pnpm install, add pnpm to prerequisites.
CLAUDE.md: npm install -> pnpm install.

Refs tracefinity#63

Signed-off-by: Jason Madigan <[email protected]>

* Address review: missed npm ref, pnpm security settings, packageManager pin

- playwright.config.ts: npm run dev -> pnpm run dev
- .npmrc: add minimum-release-age, block-exotic-subdeps, strict-dep-builds
- package.json: add packageManager field pinning [email protected]

Signed-off-by: Jason Madigan <[email protected]>

* Fix numba cache dir for Docker runtime

Signed-off-by: Jason Madigan <[email protected]>

---------

Signed-off-by: Jason Madigan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate from npm to pnpm

1 participant