Skip to content

Commit c4f1e4e

Browse files
authored
Merge pull request #15611 from webpack/bugfix/esm-build-deps
support node.js builtin modules in esm build dependencies
2 parents 2c200d1 + ab40959 commit c4f1e4e

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

lib/FileSystemInfo.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"use strict";
77

88
const { create: createResolver } = require("enhanced-resolve");
9+
const nodeModule = require("module");
910
const asyncLib = require("neo-async");
1011
const AsyncQueue = require("./util/AsyncQueue");
1112
const StackedCacheMap = require("./util/StackedCacheMap");
@@ -22,6 +23,8 @@ const processAsyncTree = require("./util/processAsyncTree");
2223

2324
const supportsEsm = +process.versions.modules >= 83;
2425

26+
const builtinModules = new Set(nodeModule.builtinModules);
27+
2528
let FS_ACCURACY = 2000;
2629

2730
const EMPTY_SET = new Set();
@@ -1676,6 +1679,7 @@ class FileSystemInfo {
16761679

16771680
// we should not track Node.js build dependencies
16781681
if (dependency.startsWith("node:")) continue;
1682+
if (builtinModules.has(dependency)) continue;
16791683

16801684
push({
16811685
type: RBDT_RESOLVE_ESM_FILE,

test/BuildDependencies.longtest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ describe("BuildDependencies", () => {
133133
);
134134
fs.writeFileSync(
135135
path.resolve(inputDirectory, "esm-async-dependency.mjs"),
136-
'import path from "node:path"; export default 0;'
136+
'import path from "node:path"; import vm from "vm"; export default 0;'
137137
);
138138
await exec("0", {
139139
invalidBuildDependencies: true,

0 commit comments

Comments
 (0)