Strict Dependency Resolution
Symptoms
Cause
pnpm has stricter dependency resolution than Yarn or npm. It doesnβt automatically install missing peer dependencies and requires explicit installation.Solutions
1. Explicitly Install Peer Dependency
2. auto-install-peers Setting (Not Recommended)
.npmrc:
3. Use pnpm.overrides
package.json:
Workspace Protocol Error
Symptoms
Cause
Usedworkspace:* protocol but that package doesnβt exist in the workspace.
Solutions
1. Check Workspace Packages
pnpm-workspace.yaml:
2. Check Package Name
3. Fix package.json
Catalog Version Mismatch
Symptoms
Cause
Version defined inpnpm-workspace.yaml catalog differs from package.json version.
Solutions
1. Use Catalog Version (Recommended)
package.json:
2. Update Catalog
pnpm-workspace.yaml:
3. Unify All Workspace to Catalog Version
Hoisting Issues
Symptoms
Cause
pnpm doesnβt hoist dependencies by default. Each package is isolated undernode_modules/.pnpm.
Solutions
1. Use public-hoist-pattern
.npmrc:
node_modules.
2. shamefully-hoist (Last Resort)
.npmrc:
3. Declare Correct Dependencies
TypeScript Path Mapping Error
Symptoms
Cause
TypeScript path mapping doesnβt work properly due to pnpmβs strict dependency resolution.Solutions
1. tsconfig.json Configuration
2. tsx/ts-node Configuration
tsconfig.json:
Phantom Dependencies
Symptoms
A package imported directly in code doesnβt exist inpackage.json but works.
Cause
Phantom Dependencies - accidentally accessible through dependencies of other packages.Solutions
1. Add Explicit Dependency
2. Run pnpm check
onlyBuiltDependencies Error
Symptoms
Cause
Packages inonlyBuiltDependencies list are configured to install optionally only.
Solution
pnpm-workspace.yaml:
Overrides Not Applied
Symptoms
pnpm.overrides is configured but not applied.
Causes
- Overrides syntax is wrong
- Set in non-workspace-root location
- pnpm version is old
Solutions
1. Correct Overrides Syntax
package.json (workspace root):