Skip to content

Commit 08b0b72

Browse files
dsherretlittledivy
authored andcommitted
fix(node): require esm should prefer module.exports export (#28376)
1 parent e721ecc commit 08b0b72

File tree

6 files changed

+17
-2
lines changed

6 files changed

+17
-2
lines changed

ext/node/polyfills/01_require.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,8 +1101,11 @@ function loadESMFromCJS(module, filename, code) {
11011101
url.pathToFileURL(filename).toString(),
11021102
code,
11031103
);
1104-
1105-
module.exports = namespace;
1104+
if (ObjectHasOwn(namespace, "module.exports")) {
1105+
module.exports = namespace["module.exports"];
1106+
} else {
1107+
module.exports = namespace;
1108+
}
11061109
}
11071110

11081111
function stripBOM(content) {
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"args": "run -A main.cjs",
3+
"output": "main.out"
4+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
console.log(require("./undefined.mjs"));
2+
console.log(require("./string.mjs"));
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
undefined
2+
value
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
const value = "value";
2+
export { value as "module.exports" };
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
const value = undefined;
2+
export { value as "module.exports" };

0 commit comments

Comments
 (0)