From 08f6f70ab2dac250b32dc02634f07e73abc68d63 Mon Sep 17 00:00:00 2001 From: Kristoffer K Date: Wed, 23 Aug 2023 21:26:56 +0200 Subject: [PATCH] fix(pnp): esm - return undefined source for commonjs (#5677) **What's the problem this PR addresses?** The ESM loader always returns a source which after https://github.com/nodejs/node/pull/47999 landed causes stuff to break. **How did you fix it?** Return undefined source for commonjs modules **Checklist** - [x] I have read the [Contributing Guide](https://yarnpkg.com/advanced/contributing). - [x] I have set the packages that need to be released for my changes to be effective. - [x] I will check that all automated PR checks pass before the PR gets reviewed. --- .pnp.loader.mjs | 2 +- .yarn/versions/d70173f5.yml | 27 ++++++++++++++++++ .../pkg-tests-specs/sources/pnp-esm.test.ts | 28 +++++++++++++++++++ .../sources/esm-loader/built-loader.js | 2 +- .../sources/esm-loader/hooks/load.ts | 4 +-- 5 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 .yarn/versions/d70173f5.yml diff --git a/.pnp.loader.mjs b/.pnp.loader.mjs index 7a572a6e23b4..9f75f0559c2b 100644 --- a/.pnp.loader.mjs +++ b/.pnp.loader.mjs @@ -1470,7 +1470,7 @@ async function load$1(urlString, context, nextLoad) { } return { format, - source: await fs.promises.readFile(filePath, `utf8`), + source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), shortCircuit: true }; } diff --git a/.yarn/versions/d70173f5.yml b/.yarn/versions/d70173f5.yml new file mode 100644 index 000000000000..22e76f05f959 --- /dev/null +++ b/.yarn/versions/d70173f5.yml @@ -0,0 +1,27 @@ +releases: + "@yarnpkg/cli": patch + "@yarnpkg/plugin-pnp": patch + "@yarnpkg/pnp": patch + +declined: + - "@yarnpkg/plugin-compat" + - "@yarnpkg/plugin-constraints" + - "@yarnpkg/plugin-dlx" + - "@yarnpkg/plugin-essentials" + - "@yarnpkg/plugin-init" + - "@yarnpkg/plugin-interactive-tools" + - "@yarnpkg/plugin-nm" + - "@yarnpkg/plugin-npm-cli" + - "@yarnpkg/plugin-pack" + - "@yarnpkg/plugin-patch" + - "@yarnpkg/plugin-pnpm" + - "@yarnpkg/plugin-stage" + - "@yarnpkg/plugin-typescript" + - "@yarnpkg/plugin-version" + - "@yarnpkg/plugin-workspace-tools" + - "@yarnpkg/builder" + - "@yarnpkg/core" + - "@yarnpkg/doctor" + - "@yarnpkg/nm" + - "@yarnpkg/pnpify" + - "@yarnpkg/sdks" diff --git a/packages/acceptance-tests/pkg-tests-specs/sources/pnp-esm.test.ts b/packages/acceptance-tests/pkg-tests-specs/sources/pnp-esm.test.ts index ce4f711f0e44..c15de2dc58b8 100644 --- a/packages/acceptance-tests/pkg-tests-specs/sources/pnp-esm.test.ts +++ b/packages/acceptance-tests/pkg-tests-specs/sources/pnp-esm.test.ts @@ -1004,4 +1004,32 @@ describe(`Plug'n'Play - ESM`, () => { ), ); }); + + it( + `should use the commonjs resolver in commonjs files imported from ESM`, + makeTemporaryEnv( + { + type: `module`, + }, + async ({path, run, source}) => { + await xfs.writeFilePromise(ppath.join(path, `foo.js`), `import './bar.cjs';`); + await xfs.writeFilePromise( + ppath.join(path, `bar.cjs`), + ` + require('module')._extensions['.custom'] = require('module')._extensions['.js']; + require('./baz'); + `, + ); + await xfs.writeFilePromise(ppath.join(path, `baz.custom`), `console.log(42);`); + + await expect(run(`install`)).resolves.toMatchObject({code: 0}); + + await expect(run(`node`, `./foo.js`)).resolves.toMatchObject({ + code: 0, + stdout: `42\n`, + stderr: ``, + }); + }, + ), + ); }); diff --git a/packages/yarnpkg-pnp/sources/esm-loader/built-loader.js b/packages/yarnpkg-pnp/sources/esm-loader/built-loader.js index 07dd3b794a58..d9df6206a183 100644 --- a/packages/yarnpkg-pnp/sources/esm-loader/built-loader.js +++ b/packages/yarnpkg-pnp/sources/esm-loader/built-loader.js @@ -2,7 +2,7 @@ let hook; module.exports = () => { if (typeof hook === `undefined`) - hook = require('zlib').brotliDecompressSync(Buffer.from('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', 'base64')).toString(); + hook = require('zlib').brotliDecompressSync(Buffer.from('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', 'base64')).toString(); return hook; }; diff --git a/packages/yarnpkg-pnp/sources/esm-loader/hooks/load.ts b/packages/yarnpkg-pnp/sources/esm-loader/hooks/load.ts index 35b42f765d3a..7d62fc280400 100644 --- a/packages/yarnpkg-pnp/sources/esm-loader/hooks/load.ts +++ b/packages/yarnpkg-pnp/sources/esm-loader/hooks/load.ts @@ -15,7 +15,7 @@ export async function load( }; }, nextLoad: typeof load, -): Promise<{ format: string, source: string, shortCircuit: boolean }> { +): Promise<{ format: string, source?: string, shortCircuit: boolean }> { const url = loaderUtils.tryParseURL(urlString); if (url?.protocol !== `file:`) return nextLoad(urlString, context, nextLoad); @@ -49,7 +49,7 @@ export async function load( return { format, - source: await fs.promises.readFile(filePath, `utf8`), + source: format === `commonjs` ? undefined : await fs.promises.readFile(filePath, `utf8`), shortCircuit: true, }; }