From c2a674deee8af3656675455a7785f32ec0d542a7 Mon Sep 17 00:00:00 2001 From: Robert Sweeney Date: Tue, 31 Jan 2023 06:22:49 -0700 Subject: [PATCH 1/2] Bump the version of is-builtin-module to include the fix for imports with a trailing slash --- packages/node-resolve/package.json | 2 +- pnpm-lock.yaml | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/node-resolve/package.json b/packages/node-resolve/package.json index 01e4c73f3..fd12ccaf7 100644 --- a/packages/node-resolve/package.json +++ b/packages/node-resolve/package.json @@ -64,7 +64,7 @@ "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.0", + "is-builtin-module": "^3.2.1", "is-module": "^1.0.0", "resolve": "^1.22.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9f5c57f94..90df43f38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,12 +101,6 @@ importers: rollup: 3.2.3 typescript: 4.8.4 - packages/auto-install/test/fixtures/pnpm: - specifiers: - node-noop: ^1.0.0 - dependencies: - node-noop: 1.0.0 - packages/babel: specifiers: '@babel/core': ^7.19.1 @@ -385,7 +379,7 @@ importers: '@types/resolve': 1.20.2 deepmerge: ^4.2.2 es5-ext: ^0.10.62 - is-builtin-module: ^3.2.0 + is-builtin-module: ^3.2.1 is-module: ^1.0.0 resolve: ^1.22.1 rollup: ^3.2.3 @@ -395,7 +389,7 @@ importers: '@rollup/pluginutils': 5.0.1_rollup@3.2.3 '@types/resolve': 1.20.2 deepmerge: 4.2.2 - is-builtin-module: 3.2.0 + is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 devDependencies: @@ -4773,6 +4767,14 @@ packages: engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 + dev: true + + /is-builtin-module/3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: false /is-callable/1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -5540,6 +5542,7 @@ packages: /node-noop/1.0.0: resolution: {integrity: sha512-1lpWqKwZ9yUosQfW1uy3jm6St4ZbmeDKKGmdzwzedbyBI4LgHtGyL1ofDdqiSomgaYaSERi+qWtj64huJQjl7g==} + dev: true /node-preload/0.2.1: resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} From 75d6a3f9fd042a04c6349c18ab22fe6e7ab44edc Mon Sep 17 00:00:00 2001 From: Robert Sweeney Date: Tue, 31 Jan 2023 07:59:51 -0700 Subject: [PATCH 2/2] Add tests for bypassing builtin modules with a trailing slash --- .../node-resolve/test/fixtures/prefer-local.js | 3 +++ packages/node-resolve/test/prefer-builtins.js | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 packages/node-resolve/test/fixtures/prefer-local.js diff --git a/packages/node-resolve/test/fixtures/prefer-local.js b/packages/node-resolve/test/fixtures/prefer-local.js new file mode 100644 index 000000000..188475c9f --- /dev/null +++ b/packages/node-resolve/test/fixtures/prefer-local.js @@ -0,0 +1,3 @@ +import message from 'events/' + +export default message; diff --git a/packages/node-resolve/test/prefer-builtins.js b/packages/node-resolve/test/prefer-builtins.js index 8cd3715a7..27d69d771 100644 --- a/packages/node-resolve/test/prefer-builtins.js +++ b/packages/node-resolve/test/prefer-builtins.js @@ -69,6 +69,24 @@ test('true allows preferring a builtin to a local module of the same name', asyn t.deepEqual(imports, ['events']); }); +test('true prefers a local module to a builtin of the same name when imported with a trailing slash', async (t) => { + const warnings = []; + const bundle = await rollup({ + input: 'prefer-local.js', + onwarn: (warning) => warnings.push(warning), + plugins: [ + nodeResolve({ + preferBuiltins: true + }) + ] + }); + + const imports = await getImports(bundle); + + t.is(warnings.length, 0); + t.deepEqual(imports, []); +}); + test('false allows resolving a local module with the same name as a builtin module', async (t) => { const warnings = []; const bundle = await rollup({