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/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({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3f8f40cd..0767ccae3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,7 +106,7 @@ importers: node-noop: ^1.0.0 dependencies: node-noop: 1.0.0 - + packages/babel: specifiers: '@babel/core': ^7.19.1 @@ -396,7 +396,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 @@ -406,7 +406,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: @@ -4904,6 +4904,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==} @@ -5671,6 +5679,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==}