diff --git a/packages/utils/node-resolver-core/src/NodeResolver.js b/packages/utils/node-resolver-core/src/NodeResolver.js index 9d5bdb4c359..cacffe26e4f 100644 --- a/packages/utils/node-resolver-core/src/NodeResolver.js +++ b/packages/utils/node-resolver-core/src/NodeResolver.js @@ -255,7 +255,7 @@ export default class NodeResolver { } if (!this.shouldIncludeNodeModule(env, filename)) { - if (sourcePath && env.isLibrary) { + if (sourcePath && env.isLibrary && !builtin) { await this.checkExcludedDependency(sourcePath, filename, ctx); } return null; diff --git a/packages/utils/node-resolver-core/test/resolver.js b/packages/utils/node-resolver-core/test/resolver.js index dce617a5e9d..b3f52708e68 100644 --- a/packages/utils/node-resolver-core/test/resolver.js +++ b/packages/utils/node-resolver-core/test/resolver.js @@ -2380,6 +2380,25 @@ describe('resolver', function () { assert.deepEqual(result, {isExcluded: true}); }); + + it('should not error on builtin node modules', async function () { + let result = await resolver.resolve({ + env: new Environment( + createEnvironment({ + context: 'browser', + isLibrary: true, + includeNodeModules: false, + }), + DEFAULT_OPTIONS, + ), + filename: 'buffer', + specifierType: 'esm', + parent: path.join(rootDir, 'env-dep/foo.js'), + sourcePath: path.join(rootDir, 'env-dep/foo.js'), + }); + + assert.deepEqual(result, {isExcluded: true}); + }); }); describe('urls', function () {