diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 0fbb3b5cf35a79..91d32ea2d06fb1 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -584,9 +584,6 @@ Module._resolveFilename = function(request, parent, isMain, options) { fakeParent.paths = Module._nodeModulePaths(path); const lookupPaths = Module._resolveLookupPaths(request, fakeParent, true); - if (!paths.includes(path)) - paths.push(path); - for (var j = 0; j < lookupPaths.length; j++) { if (!paths.includes(lookupPaths[j])) paths.push(lookupPaths[j]); diff --git a/test/fixtures/require-resolve.js b/test/fixtures/require-resolve.js index 982b15c4979c8c..2a0dc8846ce3cb 100644 --- a/test/fixtures/require-resolve.js +++ b/test/fixtures/require-resolve.js @@ -24,11 +24,12 @@ assert.throws(() => { require.resolve('three') }, /^Error: Cannot find module 'three'$/); - // However, it can be found if resolution contains the nested index directory. - assert.strictEqual( - require.resolve('three', { paths: [nestedIndex] }), - path.join(nestedIndex, 'three.js') - ); + // If the nested-index directory is provided as a resolve path, 'three' + // cannot be found because nested-index is used as a starting point and not + // a searched directory. + assert.throws(() => { + require.resolve('three', { paths: [nestedIndex] }) + }, /^Error: Cannot find module 'three'$/); // Resolution from nested index directory also checks node_modules. assert.strictEqual( @@ -50,6 +51,6 @@ assert.throws(() => { paths.unshift(nestedNodeModules); assert.strictEqual( require.resolve('bar', { paths }), - path.join(nestedNodeModules, 'bar.js') + path.join(nodeModules, 'bar.js') ); }