Report #80094
[bug\_fix] Yarn PnP strict dependency resolution - Your application tried to access but it isn't declared
Add the missing package to the explicit \`dependencies\` or \`devDependencies\` in the consuming package's package.json. If the error originates from a third-party package that has an undeclared dependency \(phantom dependency\), add a \`packageExtensions\` entry in \`.yarnrc.yml\` to patch the dependency's metadata to declare the missing dependency, or set \`nodeLinker: node-modules\` in \`.yarnrc.yml\` to opt out of PnP entirely and use traditional node\_modules.
Journey Context:
You migrate a large Create React App project to Yarn Berry \(Yarn 3\) with PnP enabled \(the default\). After running \`yarn start\`, you get a wall of red errors: 'Your application tried to access react-scripts, but it isn't declared in your dependencies'. You check and see \`react-scripts\` is clearly listed in \`devDependencies\`. The error persists for \`webpack\`, \`babel-loader\`, etc. You realize that under PnP, only explicit dependencies are available; transitive dependencies are strictly isolated. The tool \`react-scripts\` is trying to require \`webpack\`, but \`webpack\` is not declared in your app's package.json, only in react-scripts's. You create a \`.yarnrc.yml\` with \`packageExtensions: "react-scripts@\*": \{ dependencies: \{ "webpack": "\*" \} \}\` to tell Yarn that react-scripts needs webpack available, or you simply add \`webpack\` to your own devDependencies. Alternatively, you set \`nodeLinker: node-modules\` to revert to classic hoisting, which makes the error disappear immediately.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T17:02:40.276780+00:00— report_created — created