From c88dc7ce50615f3aa247f5f062d556f72f58c7f8 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sun, 1 May 2022 07:09:29 +0200 Subject: [PATCH 1/2] fix(node-resolve): Respect if other plugins resolve the resolution to a different id --- packages/node-resolve/src/index.js | 5 +++++ packages/node-resolve/test/test.js | 30 +++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/packages/node-resolve/src/index.js b/packages/node-resolve/src/index.js index 8daafcffe..f9895be3c 100644 --- a/packages/node-resolve/src/index.js +++ b/packages/node-resolve/src/index.js @@ -281,6 +281,11 @@ export function nodeResolve(opts = {}) { if (resolvedResolved.external) { return false; } + // Allow other plugins to take over resolution. Rollup core will not + // change the id if it corresponds to an existing file + if (resolvedResolved.id !== resolved.id) { + return resolvedResolved; + } // Pass on meta information added by other plugins return { ...resolved, meta: resolvedResolved.meta }; } diff --git a/packages/node-resolve/test/test.js b/packages/node-resolve/test/test.js index 50cbcac82..9c08ce211 100755 --- a/packages/node-resolve/test/test.js +++ b/packages/node-resolve/test/test.js @@ -1,4 +1,4 @@ -import { join, resolve } from 'path'; +import { join, resolve, dirname } from 'path'; import test from 'ava'; import { rollup } from 'rollup'; @@ -581,3 +581,31 @@ test('passes on meta information from other plugins', async (t) => { ] }); }); + +test('allow other plugins to take over resolution', async (t) => { + await rollup({ + input: 'entry/main.js', + onwarn: failOnWarn(t), + plugins: [ + nodeResolve(), + { + name: 'change-resolution', + resolveId(importee) { + if (importee.endsWith('main.js')) { + return { + id: join(dirname(importee), 'other.js'), + meta: { 'change-resolution': 'changed' } + }; + } + return null; + }, + + load(id) { + const info = this.getModuleInfo(id); + t.is(info.id, join(__dirname, 'fixtures', 'entry', 'other.js')); + t.deepEqual(info.meta, { 'change-resolution': 'changed' }); + } + } + ] + }); +}); From 6a214faf4987474ca5a13082b330f7a0b69229bb Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sun, 1 May 2022 16:36:39 +0200 Subject: [PATCH 2/2] chore(node-resolve): Install pnpm 6 instead of 7 --- .github/workflows/node-windows.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/validate.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/node-windows.yml b/.github/workflows/node-windows.yml index 9967e4fb9..61929378a 100644 --- a/.github/workflows/node-windows.yml +++ b/.github/workflows/node-windows.yml @@ -36,7 +36,7 @@ jobs: node-version: ${{ matrix.node }} - name: install pnpm - run: npm install pnpm -g + run: npm install pnpm@6 -g - name: pnpm install run: pnpm install --ignore-scripts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6f7a56e75..5d577e944 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -43,7 +43,7 @@ jobs: - name: Install pnpm run: | - npm install pnpm -g; + npm install pnpm@6 -g; echo node `pnpm -v`; - name: Set Git Config diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 95f0d4744..27d51c873 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -34,7 +34,7 @@ jobs: run: git branch -f master origin/master - name: Install pnpm - run: npm install pnpm -g + run: npm install pnpm@6 -g - name: Sanity Check run: |