Title: Yarn PnP: `require.cache` and `require.extensions` are undefined in dependencies (regression in v22.22.3) · Issue #64709 · nodejs/node · GitHub
Open Graph Title: Yarn PnP: `require.cache` and `require.extensions` are undefined in dependencies (regression in v22.22.3) · Issue #64709 · nodejs/node
X Title: Yarn PnP: `require.cache` and `require.extensions` are undefined in dependencies (regression in v22.22.3) · Issue #64709 · nodejs/node
Description: Version v22.22.3 through v22.23.1 Platform Darwin LMJ6QJLXY 25.5.0 Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:12 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6050 arm64 Subsystem No response What steps will reproduce the bug? #!/u...
Open Graph Description: Version v22.22.3 through v22.23.1 Platform Darwin LMJ6QJLXY 25.5.0 Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:12 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6050 arm64 Subsystem No response...
X Description: Version v22.22.3 through v22.23.1 Platform Darwin LMJ6QJLXY 25.5.0 Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:12 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6050 arm64 Subsystem No response...
Opengraph URL: https://github.com/nodejs/node/issues/64709
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Yarn PnP: `require.cache` and `require.extensions` are undefined in dependencies (regression in v22.22.3)","articleBody":"### Version\n\nv22.22.3 through v22.23.1\n\n### Platform\n\n```text\nDarwin LMJ6QJLXY 25.5.0 Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:12 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6050 arm64\n```\n\n### Subsystem\n\n_No response_\n\n### What steps will reproduce the bug?\n\n```bash\n#!/usr/bin/env bash\n#\n# Save this script to a file named `repro.sh`, then run it:\n#\n# bash repro.sh\n#\n# Without an argument, the script creates `node-yarn-pnp-repro` in the\n# directory from which the script is run.\n#\n# Or choose the directory where the test project will be created:\n#\n# bash repro.sh ./my-pnp-repro\n\nset -euo pipefail\n\nrepro_dir=\"${1:-node-yarn-pnp-repro}\"\n\nif [[ -e \"$repro_dir\" ]]; then\n echo \"Directory already exists: $repro_dir\" >&2\n exit 1\nfi\n\nmkdir \"$repro_dir\"\ncd \"$repro_dir\"\n\necho \"Reproduction directory: $PWD\"\n\ncat > package.json \u003c\u003c'EOF'\n{\n \"name\": \"node-yarn-pnp-repro\",\n \"private\": true,\n \"packageManager\": \"yarn@4.16.0\",\n \"dependencies\": {\n \"autoprefixer\": \"10.4.2\",\n \"css-loader\": \"7.1.4\",\n \"postcss\": \"8.4.49\",\n \"postcss-loader\": \"8.2.1\",\n \"style-loader\": \"4.0.0\",\n \"tailwindcss\": \"3.4.15\",\n \"webpack\": \"5.108.1\",\n \"webpack-cli\": \"5.1.4\"\n }\n}\nEOF\n\ncat > .yarnrc.yml \u003c\u003c'EOF'\nnodeLinker: pnp\nenableGlobalCache: false\nEOF\n\ncat > tailwind.config.js \u003c\u003c'EOF'\nmodule.exports = {\n content: ['./src/**/*.html'],\n theme: { extend: {} },\n plugins: [],\n};\nEOF\n\ncat > postcss.config.js \u003c\u003c'EOF'\nmodule.exports = {\n plugins: {\n tailwindcss: {},\n autoprefixer: {},\n },\n};\nEOF\n\nmkdir src\n\ncat > src/style.css \u003c\u003c'EOF'\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\nEOF\n\ncat > src/index.html \u003c\u003c'EOF'\n\u003cdiv class=\"text-red-500\">hi\u003c/div>\nEOF\n\ncat > webpack.config.js \u003c\u003c'EOF'\nconst path = require('path');\n\nmodule.exports = {\n mode: 'production',\n entry: './src/style.css',\n output: {\n path: path.resolve(__dirname, 'dist'),\n filename: 'bundle.js',\n },\n module: {\n rules: [\n {\n test: /\\.css$/,\n use: ['style-loader', 'css-loader', 'postcss-loader'],\n },\n ],\n },\n};\nEOF\n\ncorepack yarn install\ncorepack yarn webpack\n```\n\n### How often does it reproduce? Is there a required condition?\n\nEvery time with nodeLinker: pnp.\n\nThe same project succeeds with nodeLinker: node-modules on the same affected Node.js version.\n\n### What is the expected behavior? Why is that the expected behavior?\n\nThe build should succeed, as it does on Node.js v22.22.2 and earlier, and on Node.js v24.16.0 and later.\n\nrequire.cache is documented as an object containing cached CommonJS modules.\n\nPackages using Yarn PnP should continue to receive a require function with the standard CommonJS properties, including require.cache and require.extensions.\n\n### What do you see instead?\n\nThe build fails while webpack-cli loads webpack.config.js:\n\n`[webpack-cli] TypeError: Cannot convert undefined or null to object\n at Function.keys (\u003canonymous>)\n at exports.prepare (.../rechoir/index.js:21:14)\n at loadConfigByPath (.../webpack-cli/lib/webpack-cli.js:...)\n ...`\n\nrechoir calls Object.keys(require.extensions) at that location. Under Yarn PnP on affected Node.js versions, require.extensions is undefined.\n\nThe same underlying issue affects packages that access require.cache; for example, code such as delete require.cache[filePath] fails because require.cache is undefined.\n\n### Additional information\n\n_No response_","author":{"url":"https://github.com/web2ls","@type":"Person","name":"web2ls"},"datePublished":"2026-07-24T10:24:28Z","url":"https://github.com/nodejs/node/issues/64709"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:10cff938-2b28-7394-4d4b-0508829f3ab9 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9AF8:1BB194:44503C:587297:6AED2254 |
| html-safe-nonce | f7cce8698b99ee510b5ebb04344c967cb4e0ecc563762fc32103344d6e35e3e9 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5QUY4OjFCQjE5NDo0NDUwM0M6NTg3Mjk3OjZBRUQyMjU0IiwidmlzaXRvcl9pZCI6IjY5MTQzODc4NjIxNTM0MDUwMTIiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | b2dae27b01f14e65ce599cc34dace419af9432c59fbafde0e1032dc2ff7a12e5 |
| hovercard-subject-tag | issue:4967537980 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/64709/issue_layout |
| twitter:image | https://opengraph.githubassets.com/f02e9d748ccf7691dc2d81d37850844276439071d9b07ce35f146c916c8e8569/nodejs/node/issues/64709 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/f02e9d748ccf7691dc2d81d37850844276439071d9b07ce35f146c916c8e8569/nodejs/node/issues/64709 |
| og:image:alt | Version v22.22.3 through v22.23.1 Platform Darwin LMJ6QJLXY 25.5.0 Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:12 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6050 arm64 Subsystem No response... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | web2ls |
| hostname | github.com |
| expected-hostname | github.com |
| None | e3e0f7f63e50c6fe879198a93a0a023a648ecc0a5e9bc3b5e033ac57172237e6 |
| turbo-cache-control | no-preview |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 707a24b346ac8a82878b9c084efaa38a997660cb |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width