Skip to content

chore: migrate from npm to pnpm - #88

Open
ivoIturrieta wants to merge 2 commits into
mainfrom
chore/migrate-to-pnpm
Open

ivoIturrieta wants to merge 2 commits into
mainfrom
chore/migrate-to-pnpm

Conversation

@ivoIturrieta

Copy link
Copy Markdown
Collaborator

Replace both npm lockfiles with a single pnpm-lock.yaml, converted with pnpm import so every resolved version carries over. demo/ becomes a pnpm workspace package, so one pnpm install sets up everything.

pnpm doesn't run a dependency's install scripts unless pnpm-workspace.yaml allows it, and fails the install when an unreviewed one appears. esbuild is the only dependency with one; its postinstall is a startup optimization, so it's denied.

devEngines.packageManager makes npm install, npm ci and npm run refuse to run. pmOnFail is set to ignore because otherwise pnpm writes its own version into the lockfile as a second YAML document, which GitHub's dependency graph can't read yet.

CI installs with pnpm. pnpm 11 needs Node 22.13+, so the test matrix uses the standalone pnpm build to keep testing on Node 20. Dependabot gets a one-day cooldown to match pnpm's minimumReleaseAge.

The unused netlify-build script is removed; the demo deploys from Vercel.

dist/ is byte-identical to the npm build. The packed package.json gains devEngines and no longer lists the prepare and prepublishOnly scripts.

Replace both npm lockfiles with a single pnpm-lock.yaml, converted with
`pnpm import` so every resolved version carries over. demo/ becomes a
pnpm workspace package, so one `pnpm install` sets up everything.

pnpm doesn't run a dependency's install scripts unless pnpm-workspace.yaml
allows it, and fails the install when an unreviewed one appears. esbuild
is the only dependency with one; its postinstall is a startup
optimization, so it's denied.

devEngines.packageManager makes `npm install`, `npm ci` and `npm run`
refuse to run. pmOnFail is set to ignore because otherwise pnpm writes
its own version into the lockfile as a second YAML document, which
GitHub's dependency graph can't read yet.

CI installs with pnpm. pnpm 11 needs Node 22.13+, so the test matrix
uses the standalone pnpm build to keep testing on Node 20. Dependabot
gets a one-day cooldown to match pnpm's minimumReleaseAge.

The unused netlify-build script is removed; the demo deploys from Vercel.

dist/ is byte-identical to the npm build. The packed package.json gains
devEngines and no longer lists the prepare and prepublishOnly scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
react-image-editor Ready Ready Preview Oct 5, 2026 12:31pm UTC

Request Review

npm treats demo/ as a separate project, so the root devEngines didn't
apply there: `npm install` in demo/ succeeded, wrote its own
package-lock.json and ran dependency install scripts (fsevents).

demo/package.json now carries the same devEngines block, so
`npm install`, `npm ci` and `npm run` stop with EBADDEVENGINES there
as well. pnpm and the lockfile are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — d26a279b Deployed Oct 5, 2026 by vercel[bot]
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.

2 participants