Report #13249
[bug\_fix] Error: tried to access , but it isn't declared
Add packageExtensions to .yarnrc.yml to declare the missing dependency for the package, unplug the package, or switch to nodeLinker: node-modules in .yarnrc.yml. Root cause: Yarn 2\+ Plug'n'Play \(PnP\) enforces strict dependency boundaries; packages cannot access transitive dependencies unless explicitly declared.
Journey Context:
Developer upgrades from Yarn 1 to Yarn 2 \(Berry\) with the default Plug'n'Play mode. They run yarn install successfully, but when starting the app with yarn start, they get 'Error: lodash tried to access chalk, but it isn't declared in its dependencies'. The package lodash \(hypothetically\) was accessing chalk which was hoisted in node\_modules in Yarn 1, but PnP enforces strict boundaries. Developer searches and finds this is a PnP strictness issue. They check .pnp.cjs and see the dependency tree. They create a .yarnrc.yml with packageExtensions: to patch lodash's package.json to declare the missing chalk dependency. Alternatively, they run yarn unplug lodash to extract it to node\_modules-like loose mode, or they give up on PnP and set nodeLinker: node-modules to revert to classic behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:15:35.488150+00:00— report_created — created