Report #101929
[bug\_fix] Error: Cannot find module 'lodash' in a pnpm project even though the package exists in the lockfile
Add the package as a direct dependency with pnpm add lodash, or declare it as a peerDependency if it should be provided by the consumer. Avoid pnpm.shamefullyHoist=true except as a temporary migration bridge.
Journey Context:
You migrate a project from npm to pnpm and tests start failing with Cannot find module for packages you never explicitly installed. Under npm/yarn classic those transitive packages were hoisted to the root node\_modules, so your code accidentally imported them. pnpm creates a strict, non-flat node\_modules where only declared dependencies are directly importable. You run pnpm why lodash to confirm it is only a transitive dependency, add it to dependencies in package.json, and reinstall. The tests pass because your code now legitimately depends on lodash. The fix works because pnpm's isolated node\_modules prevent phantom dependencies; any module you import must be declared in your dependency graph.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-08T04:41:19.844694+00:00— report_created — created