chore: migrate monorepo from npm to pnpm (tooling, Docker, docs) #169
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
What is the current behavior?
The monorepo currently:
npmwith a committedpackage-lock.jsonpnpm-workspace.yaml)npxor globally installedturboin Docker imagesnpm/npxWhat is the new behavior?
pnpmwith pinned version via"packageManager": "pnpm@9.12.0"pnpm-workspace.yaml(apps/*,packages/*)pnpm-lock.yaml, removedpackage-lock.jsonnpm i,npm run, andnpxusages withpnpm install,pnpm <script>,pnpm dlxcorepack enablepnpm install --frozen-lockfile(fallback to plain install)pnpm dlx turbo@database.build/deploynow declared as"workspace:*"MIGRATION-PNPM.mdREADME.mdinstructions accordinglyRationale / Benefits
pnpm-lock.yaml+--frozen-lockfileenforces exact dependency graphpnpm-workspace.yamlworkspace:*pnpm store path)Migration Notes (Developer Actions)
If you have lingering
node_modulesorpackage-lock.jsonlocally:rm -rf node_modules **/node_modules package-lock.json pnpm installCommand Mapping
npm installpnpm installnpm install <pkg>pnpm add <pkg>npm install -D <pkg>pnpm add -D <pkg>npm uninstall <pkg>pnpm remove <pkg>npm run buildpnpm build(orpnpm run build)npx <bin>pnpm dlx <bin>npm outdatedpnpm outdatednpm updatepnpm updatenpm auditpnpm auditTesting / Verification
pnpm installsucceeds from clean clonepnpm dev(root script ->turbo watch dev)"workspace:*"package-lock.jsonfully removed; onlypnpm-lock.yamlpresentRisk Assessment & Mitigations
npm cicorepack enable && pnpm install --frozen-lockfilepackage-lock.json.gitignorerule or pre-commit check (follow-up)npmcommands)--frozen-lockfilein CIFollow-up Opportunities (Not in this PR)
pnpm store path)package-lock.jsonappearspnpm fetch+ offline installs for CI speedScreenshots
N/A (infrastructure-only change)
Additional Context
See
MIGRATION-PNPM.mdadded in this PR for deeper guidance, troubleshooting, and future upgrade instructions.Checklist
package-lock.jsonpnpm-workspace.yamlpnpm-lock.yamlpackage.jsonpackageManagerDev Environment
If you need a more concise or Conventional Commits–style summary, let me know.