#!/usr/bin/env bash
#
# Save this script to a file named `repro.sh`, then run it:
#
# bash repro.sh
#
# Without an argument, the script creates `node-yarn-pnp-repro` in the
# directory from which the script is run.
#
# Or choose the directory where the test project will be created:
#
# bash repro.sh ./my-pnp-repro
set -euo pipefail
repro_dir="${1:-node-yarn-pnp-repro}"
if [[ -e "$repro_dir" ]]; then
echo "Directory already exists: $repro_dir" >&2
exit 1
fi
mkdir "$repro_dir"
cd "$repro_dir"
echo "Reproduction directory: $PWD"
cat > package.json <<'EOF'
{
"name": "node-yarn-pnp-repro",
"private": true,
"packageManager": "yarn@4.16.0",
"dependencies": {
"autoprefixer": "10.4.2",
"css-loader": "7.1.4",
"postcss": "8.4.49",
"postcss-loader": "8.2.1",
"style-loader": "4.0.0",
"tailwindcss": "3.4.15",
"webpack": "5.108.1",
"webpack-cli": "5.1.4"
}
}
EOF
cat > .yarnrc.yml <<'EOF'
nodeLinker: pnp
enableGlobalCache: false
EOF
cat > tailwind.config.js <<'EOF'
module.exports = {
content: ['./src/**/*.html'],
theme: { extend: {} },
plugins: [],
};
EOF
cat > postcss.config.js <<'EOF'
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
EOF
mkdir src
cat > src/style.css <<'EOF'
@tailwind base;
@tailwind components;
@tailwind utilities;
EOF
cat > src/index.html <<'EOF'
<div class="text-red-500">hi</div>
EOF
cat > webpack.config.js <<'EOF'
const path = require('path');
module.exports = {
mode: 'production',
entry: './src/style.css',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader', 'postcss-loader'],
},
],
},
};
EOF
corepack yarn install
corepack yarn webpack
Self-service
Describe the bug
Under Yarn PnP on Node.js v22.22.3 through v22.23.1, the
require.extensionsandrequire.cacheproperties are undefined in therequirefunction that packages receive. This breaks tools like webpack-cli (via rechoir) and any other packages that access these standard CommonJS properties.To reproduce
Environment
System: OS: macOS 15.7.3 CPU: (8) arm64 Apple M3 Binaries: Node: 22.22.3 - /private/var/folders/0f/lsqgs4697f34ys0_f23h9mzm0000gn/T/xfs-65b2f359/node Yarn: 4.17.1 - /private/var/folders/0f/lsqgs4697f34ys0_f23h9mzm0000gn/T/xfs-65b2f359/yarn npm: 10.9.8 - /Users/web2ls/.nvm/versions/node/v22.22.3/bin/npmAdditional context
No response