chore: upgrade pnpm to 11.9.0#259
Conversation
Migrate config from .npmrc into pnpm-workspace.yaml per pnpm 11 requirements.
|
Coverage report
Test suite run success76 tests passing in 22 suites. Report generated by 🧪jest coverage report action from 9dd7d14 Show full coverage report
|
pnpm 11 no longer exposes transitive package bins or ESM imports to the workspace root, which broke `pnpm lint` in CI.
Avoid repeating eslint and typescript-eslint in every repo that uses @fingerprintjs/eslint-config-dx-team under pnpm 11.
pnpm 11 requires Node.js 22+, but the SDK still smoke-tests on 18–21.
There was a problem hiding this comment.
Pull request overview
Updates the repository’s tooling and CI to support pnpm v11 while keeping runtime smoke tests covering Node 18+.
Changes:
- Bump the repo’s pinned package manager to
pnpm@11.9.0and refresh the lockfile accordingly. - Move prior
.npmrcsettings intopnpm-workspace.yaml, add pnpm v11 build approval foresbuild, and hoist ESLint-related tooling to keeppnpm lintworking under pnpm’s isolated layout. - Update the functional tests workflow to install dependencies on Node 22 (required by pnpm 11), then switch to the matrix Node version to run the smoke test via
node.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
pnpm-workspace.yaml |
Adds pnpm v11-related workspace settings (build approvals + hoisting + previous npmrc options). |
pnpm-lock.yaml |
Lockfile updates consistent with pnpm upgrade / dependency graph changes. |
package.json |
Pins packageManager to pnpm@11.9.0. |
contributing.md |
Updates documented pnpm prerequisite to match the pinned version. |
.npmrc |
Removes settings that are being relocated per pnpm v11 configuration approach. |
.github/workflows/functional_tests.yml |
Installs deps on Node 22 for pnpm 11 compatibility, then runs smoke tests on the matrix Node version. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
verbose is npm-specific; pnpm accepts debug, info, warn, or error.
🚀 Following releases will be created using changesets from this PR:@fingerprint/node-sdk@7.4.1Patch Changes
|
pnpm@11.9.0.npmrcsettings intopnpm-workspace.yaml; delete.npmrc(pnpm 11 only reads auth/registry there)allowBuilds.esbuild: true— pnpm 11 requires explicit build approvalpublicHoistPatternfor*eslint*+typescript-eslint— lint without duplicating deps per repoDiscussion point: transitive eslint deps
pnpm lint:eslint: not found— only pulled in via@fingerprintjs/eslint-config-dx-teamdevDependenciesin every repo (idiomatic, duplicated)publicHoistPatterninpnpm-workspace.yaml(reusable, phantom-dep tradeoff)Discussion point: smoke tests on Node 18–21
pnpm installfailed on Node 18–21node smokeTests.mjsonlyTest plan
pnpm install --frozen-lockfilepnpm lint,pnpm build,pnpm test