-
Notifications
You must be signed in to change notification settings - Fork 465
Closed
Labels
Description
In Node.js, there is now experimental support for require('...') an ESM.
In Node.js, by default, requiring an ESM, the require returns the module namespace. There is a new PR, however, that will allow the ESM to indicate that the require should return the default export instead: nodejs/node#54563
Example:
// a.mjs
export default class Foo {};console.log(require('./a.mjs'));
// [Module: null prototype] { __esModule: true, default: [class Foo] }With the PR
// a.mjs
export default class Foo {};
export const __cjsUnwrapDefault = true;console.log(require('./a.mjs'));
// [class Foo]When nodejs_compat_v2 mode is on, and we are calling require('...') from a CommonJS module, the new export should be honored.