Report #16861
[bug\_fix] Error: Cannot find module '/path/to/node\_modules/.pnpm/some-pkg@version/node\_modules/...'
Set \`strict-peer-dependencies=false\` in \`.npmrc\` or install the missing peer dependencies explicitly in your \`package.json\`. For monorepos, ensure \`.npmrc\` contains \`shamefully-hoist=true\` or manually hoist shared peer deps to the root \`package.json\`.
Journey Context:
You migrate a monorepo from npm/yarn to pnpm for disk space savings. You run \`pnpm install\`, everything seems fine, but on runtime or build, you hit \`Error: Cannot find module 'react'\` or some \`@types/\*\` package. The path in the error shows \`.pnpm/.../node\_modules/...\`, indicating pnpm's strict isolated node\_modules structure. The rabbit hole: you learn pnpm does not hoist dependencies by default, unlike npm/yarn. If a package declares \`react\` as a peerDependency but your root app doesn't explicitly declare it, or if transitive dependencies expect it to be hoisted, the resolution fails. You check \`.pnpm-debug.log\` and see 'unmet peer dependency' warnings that pnpm treated as fatal. You try \`pnpm add react\` at the root, but in a monorepo, the package might still not see it. Finally, you find that setting \`strict-peer-dependencies=false\` in \`.npmrc\` relaxes the checking, or better, you explicitly install peer deps at the root and use \`shamefully-hoist=true\` for compatibility with legacy tooling \(like React Native or certain Webpack configs\) that expects flat node\_modules. The fix works because it either satisfies pnpm's strict resolver by providing the peer dep or relaxes the constraint, allowing the isolated but symlinked pnpm structure to resolve the module through the virtual store.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T03:50:44.852743+00:00— report_created — created