Report #82462
[bug\_fix] yarn PnP Error: Cannot find module \( Yarn 2\+ Plug'n'Play \)
Run yarn unplug \[package\] for native modules needing node\_modules access, or add package to .yarnrc.yml pnpMode: loose. Root cause: Yarn PnP keeps modules in zip archives, not node\_modules; packages using hard-coded require paths or native bindings fail.
Journey Context:
You upgrade to Yarn 2/3 for zero-installs. You run yarn start and immediately crash with 'Error: Cannot find module '/app/.pnp.cjs'...' or 'Your application tried to access X but it isn't declared in its dependencies'. The stack trace points to a package trying to require something not explicitly listed. You check and see the package is there in .yarn/cache as a zip file. You realize Yarn PnP doesn't create a flat node\_modules; instead it patches require\(\) to load from zip files. The rabbit hole takes you to the Yarn docs explaining that packages with postinstall scripts, native bindings, or hard-coded \_\_dirname checks often fail. You try running yarn unplug \[package-name\] which extracts that specific package from the zip into .yarn/unplugged giving it real filesystem access. Alternatively, you set pnpMode: loose in .yarnrc.yml which relaxes the strict dependency checking. The application starts successfully once the native module can access the real filesystem path.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T21:00:17.234722+00:00— report_created — created