ESM-CJS interop test
This project is maintained by sokra
import x
and similarimport { named }
and similarimport { __esModule }
and similarimport *
and similarimport()
and similarrequire().default
and similarrequire().named
and similarrequire().__esModule
and similarrequire()
and similarSee modules
directory for details
default-export
exports.default = "default";
named-and-default-export
exports.named = "named"; exports.default = "default";
named-and-null-default-export
exports.named = "named"; exports.default = null;
named-export
exports.named = "named";
tla
await Promise.resolve();
order.js
exports.b = "b"; exports.a = "a"; exports.c = "c";
single-
module.exports = ...
module.exports
export handled?single-...-defined
Object.defineProperty(module, "exports", { value: ... })
single-promise-
module.exports = Promise.resolve(...)
import()
?import
?-esModule
Object.defineProperty(exports, "__esModule", { value: true });
__esModule
?-non-enumerable
Object.defineProperty(exports, "name", { value: "value" });
-getter
Object.defineProperty(exports, "name", { get: () => "value" });
-inherited
exports
-runtime
-live
-esm-reexport
export * from "..."
-reexport
module.export = require("...")
-esm
For readablility some shortcuts are applied:
named
named: 'named'
[named]
[named]: 'named'
(non enumerable)default
default: 'default'
[default]
[default]: 'default'
(non enumerable)__esModule
__esModule: true
[__esModule]
[__esModule]: true
(non enumerable)[G]
[Getter]
[Module]
[Symbol(Symbol.toStringTag)]: 'Module'
Version: node@20.0.0
node | import x import { default as x } |
import * as x; x.default import * as x; ident(x).default |
import { named as x } |
import * as x; x.named import * as x; ident(x).named |
import { __esModule as x } |
import * as x; x.__esModule import * as x; ident(x).__esModule |
import * as x import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
x = require(); ident(x).named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
{ default } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
true |
default-export-esModule | { [__esModule], default } |
{ [__esModule], default } |
syntax error | undefined |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
false |
true |
default-export-esModule-esm-reexport | syntax error | undefined |
syntax error | undefined |
true |
true |
[Module: null prototype] { __esModule, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
default-export-esm | 'default' |
'default' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport |
{ named, default } |
{ named, default } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { named, default }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-babel-getter | { [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named: [G], default: [G] }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
false |
true |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-default-export-esModule-esm-reexport | syntax error | undefined |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, named, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export-esm tla-esm |
'default' |
'default' |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default, named, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export-esm-esm-reexport named-and-default-export-esm-reexport named-export-esm tla-esm-esm-reexport |
syntax error | undefined |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { named, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-getter-esModule | { [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-inherited named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
{ named, default } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-live | { named, default } |
{ named, default } |
'named-outdated' |
'named-outdated' |
syntax error | undefined |
[Module: null prototype] { default: { named, default }, named: 'named-outdated', [Module] } |
'default' |
'default' |
'named-outdated' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-non-enumerable | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { [named], [default] }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
true |
named-and-default-export-non-enumerable-inherited | { [named], [default] } |
{ [named], [default] } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
true |
named-and-default-export-runtime-esModule | { [__esModule], named, default } |
{ [__esModule], named, default } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule], named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-null-default-export | { named, default: null } |
{ named, default: null } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { named, default: null }, named, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
true |
named-and-null-default-export-esModule | { [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named, default: null }, named, [Module] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { [named], [default]: null }, named, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
true |
named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
{ named, default: null } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
true |
named-and-null-default-export-runtime-esModule | { [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule], named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
true |
named-export | { named } |
{ named } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { named }, named, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
true |
named-export-esModule | { [__esModule], named } |
{ [__esModule], named } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named }, named, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
true |
named-export-non-enumerable | { [named] } |
{ [named] } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { [named] }, named, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
true |
named-export-runtime single-object-export |
{ named } |
{ named } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
true |
named-export-runtime-esModule | { [__esModule], named } |
{ [__esModule], named } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule], named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
true |
order | { b, a, c } |
{ b, a, c } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { a, b, c, default: { b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
true |
order-esModule | { [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
syntax error | undefined |
true |
true |
[Module: null prototype] { __esModule, a, b, c, default: { [__esModule], b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
false |
true |
order-esm | syntax error | undefined |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { a, b, c, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
{ default, named } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { default, named }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
true |
single-empty-string-export | '' |
'' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: '', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
true |
single-null-export | null |
null |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: null, [Module] } |
type error | undefined |
type error | type error | undefined |
type error | undefined |
null |
false |
true |
single-promise-object-export | Promise { { named } } |
Promise { { named } } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: Promise { { named } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
true |
single-promise-object-with-default-export | Promise { { named, default } } |
Promise { { named, default } } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: Promise { { named, default } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
true |
single-promise-string-export | Promise { 'single' } |
Promise { 'single' } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: Promise { 'single' }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
true |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
'single' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: 'single', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
true |
single-string-export-esm-reexport | syntax error | undefined |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
single-string-export-live | 'single-outdated' |
'single-outdated' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: 'single-outdated', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
true |
tla-esModule | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error |
tla-esModule-esm-reexport | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | syntax error | syntax error |
Version: node@18.16.0
node-lts | import x import { default as x } |
import * as x; x.default import * as x; ident(x).default |
import { named as x } |
import * as x; x.named import * as x; ident(x).named |
import { __esModule as x } |
import * as x; x.__esModule import * as x; ident(x).__esModule |
import * as x import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
x = require(); ident(x).named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
{ default } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
true |
default-export-esModule | { [__esModule], default } |
{ [__esModule], default } |
syntax error | undefined |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
false |
true |
default-export-esModule-esm-reexport | syntax error | undefined |
syntax error | undefined |
true |
true |
[Module: null prototype] { __esModule, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
default-export-esm | 'default' |
'default' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport |
{ named, default } |
{ named, default } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { named, default }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-babel-getter | { [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named: [G], default: [G] }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
false |
true |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-default-export-esModule-esm-reexport | syntax error | undefined |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, named, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export-esm tla-esm |
'default' |
'default' |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default, named, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export-esm-esm-reexport named-and-default-export-esm-reexport named-export-esm tla-esm-esm-reexport |
syntax error | undefined |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { named, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-getter-esModule | { [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-inherited named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
{ named, default } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-live | { named, default } |
{ named, default } |
'named-outdated' |
'named-outdated' |
syntax error | undefined |
[Module: null prototype] { default: { named, default }, named: 'named-outdated', [Module] } |
'default' |
'default' |
'named-outdated' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-non-enumerable | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { [named], [default] }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
true |
named-and-default-export-non-enumerable-inherited | { [named], [default] } |
{ [named], [default] } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
true |
named-and-default-export-runtime-esModule | { [__esModule], named, default } |
{ [__esModule], named, default } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule], named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-null-default-export | { named, default: null } |
{ named, default: null } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { named, default: null }, named, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
true |
named-and-null-default-export-esModule | { [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named, default: null }, named, [Module] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { [named], [default]: null }, named, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
true |
named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
{ named, default: null } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
true |
named-and-null-default-export-runtime-esModule | { [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule], named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
true |
named-export | { named } |
{ named } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { named }, named, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
true |
named-export-esModule | { [__esModule], named } |
{ [__esModule], named } |
'named' |
'named' |
true |
true |
[Module: null prototype] { __esModule, default: { [__esModule], named }, named, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
true |
named-export-non-enumerable | { [named] } |
{ [named] } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { [named] }, named, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
true |
named-export-runtime single-object-export |
{ named } |
{ named } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
true |
named-export-runtime-esModule | { [__esModule], named } |
{ [__esModule], named } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: { [__esModule], named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
true |
order | { b, a, c } |
{ b, a, c } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { a, b, c, default: { b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
true |
order-esModule | { [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
syntax error | undefined |
true |
true |
[Module: null prototype] { __esModule, a, b, c, default: { [__esModule], b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
false |
true |
order-esm | syntax error | undefined |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { a, b, c, [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
{ default, named } |
'named' |
'named' |
syntax error | undefined |
[Module: null prototype] { default: { default, named }, named, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
true |
single-empty-string-export | '' |
'' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: '', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
true |
single-null-export | null |
null |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: null, [Module] } |
type error | undefined |
type error | type error | undefined |
type error | undefined |
null |
false |
true |
single-promise-object-export | Promise { { named } } |
Promise { { named } } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: Promise { { named } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
true |
single-promise-object-with-default-export | Promise { { named, default } } |
Promise { { named, default } } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: Promise { { named, default } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
true |
single-promise-string-export | Promise { 'single' } |
Promise { 'single' } |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: Promise { 'single' }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
true |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
'single' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: 'single', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
true |
single-string-export-esm-reexport | syntax error | undefined |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { [Module] } |
require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | true |
single-string-export-live | 'single-outdated' |
'single-outdated' |
syntax error | undefined |
syntax error | undefined |
[Module: null prototype] { default: 'single-outdated', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
true |
tla-esModule | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error |
tla-esModule-esm-reexport | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | require(esm) not allowed | syntax error | syntax error |
Babel behaves different depending on the file extension. If it is .mjs
, it will compile in a strictNamespace
mode.
.mjs
fileVersion: @babel/cli@7.21.5
@babel/core@7.21.8
@babel/plugin-transform-modules-commonjs@7.21.5
babel-plugin-dynamic-import-node@2.3.3
node@20.0.0
babel | import x import { default as x } import * as x; x.default import * as x; ident(x).default |
import { named as x } x = require(); x.named |
import * as x; x.named import * as x; ident(x).named |
import { __esModule as x } { __esModule } = require() x = require(); x.__esModule |
import * as x; x.__esModule import * as x; ident(x).__esModule x = require(); ident(x).__esModule |
import * as x import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); ident(x).named |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
undefined |
undefined |
undefined |
undefined |
{ default: { default } } |
'default' |
'default' |
undefined |
undefined |
{ default } |
false |
true |
default-export-esModule default-export-esm |
'default' |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
'default' |
'default' |
undefined |
undefined |
{ [__esModule], default } |
true |
true |
default-export-esModule-esm-reexport | undefined |
undefined |
undefined |
true |
true |
{ [__esModule] } |
undefined |
undefined |
undefined |
undefined |
{ [__esModule] } |
true |
true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { named, default } } |
'default' |
'default' |
'named' |
'named' |
{ named, default } |
false |
true |
named-and-default-export-babel-getter | 'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule], named: [G], default: [G] } |
true |
true |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule], named, default } |
true |
true |
named-and-default-export-esModule-esm-reexport named-and-default-export-esm-reexport |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
undefined |
undefined |
'named' |
'named' |
{ [__esModule], named: [G] } |
true |
true |
named-and-default-export-esm | 'default' |
'named' |
'named' |
true |
true |
{ [__esModule], default, named } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule], default, named } |
true |
true |
named-and-default-export-esm-esm-reexport tla-esm-esm-reexport |
runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named]: [G], [default]: [G] } } |
'default' |
'default' |
'named' |
'named' |
{ [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-getter-esModule | 'default' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
true |
true |
named-and-default-export-inherited | { named, default } |
'named' |
undefined |
undefined |
undefined |
{ default: { named, default } } |
'default' |
'default' |
'named' |
'named' |
{ named, default } |
false |
true |
named-and-default-export-live | { named, default } |
'named' |
'named-outdated' |
undefined |
undefined |
{ named: 'named-outdated', default: { named, default } } |
'default' |
'default' |
'named-outdated' |
'named' |
{ named, default } |
false |
true |
named-and-default-export-non-enumerable named-and-default-export-non-enumerable-inherited |
{ [named], [default] } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named], [default] } } |
'default' |
'default' |
'named' |
'named' |
{ [named], [default] } |
false |
true |
named-and-null-default-export named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { named, default: null } } |
null |
null |
'named' |
'named' |
{ named, default: null } |
false |
true |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
null |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
null |
null |
'named' |
'named' |
{ [__esModule], named, default: null } |
true |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named], [default]: null } } |
null |
null |
'named' |
'named' |
{ [named], [default]: null } |
false |
true |
named-export named-export-runtime single-object-export |
{ named } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { named } } |
undefined |
undefined |
'named' |
'named' |
{ named } |
false |
true |
named-export-esModule named-export-esm named-export-runtime-esModule |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
undefined |
undefined |
'named' |
'named' |
{ [__esModule], named } |
true |
true |
named-export-non-enumerable | { [named] } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named] } } |
undefined |
undefined |
'named' |
'named' |
{ [named] } |
false |
true |
order | { b, a, c } |
undefined |
undefined |
undefined |
undefined |
{ b, a, c, default: { b, a, c } } |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
true |
order-esModule | undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
undefined |
undefined |
undefined |
undefined |
{ [__esModule], b, a, c } |
true |
true |
order-esm | undefined |
undefined |
undefined |
true |
true |
{ [__esModule], a, b, c } |
undefined |
undefined |
undefined |
undefined |
{ [__esModule], a, b, c } |
true |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { default, named } } |
'default' |
'default' |
'named' |
'named' |
{ default, named } |
false |
true |
single-empty-string-export | '' |
undefined |
undefined |
undefined |
undefined |
{ default: '' } |
undefined |
undefined |
undefined |
undefined |
'' |
false |
false |
single-null-export | null |
type error | undefined |
type error | undefined |
{ default: null } |
type error | undefined |
type error | undefined |
null |
false |
false |
single-promise-object-export | Promise { { named } } |
undefined |
undefined |
undefined |
undefined |
{ default: Promise { { named } } } |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
true |
single-promise-object-with-default-export | Promise { { named, default } } |
undefined |
undefined |
undefined |
undefined |
{ default: Promise { { named, default } } } |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
true |
single-promise-string-export | Promise { 'single' } |
undefined |
undefined |
undefined |
undefined |
{ default: Promise { 'single' } } |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
true |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
undefined |
undefined |
undefined |
undefined |
{ default: 'single' } |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
false |
single-string-export-esm-reexport | undefined |
undefined |
undefined |
true |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
undefined |
undefined |
undefined |
undefined |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
true |
true |
single-string-export-live | 'single-outdated' |
undefined |
undefined |
undefined |
undefined |
{ default: 'single-outdated' } |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
false |
tla-esModule tla-esModule-esm-reexport tla-esm |
syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error |
.js
fileVersion: @babel/cli@7.21.5
@babel/core@7.21.8
@babel/plugin-transform-modules-commonjs@7.21.5
babel-plugin-dynamic-import-node@2.3.3
node@20.0.0
babel-js | import x import { default as x } import * as x; x.default import * as x; ident(x).default |
import { named as x } x = require(); x.named |
import * as x; x.named import * as x; ident(x).named |
import { __esModule as x } { __esModule } = require() x = require(); x.__esModule |
import * as x; x.__esModule import * as x; ident(x).__esModule x = require(); ident(x).__esModule |
import * as x import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); ident(x).named |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
undefined |
undefined |
undefined |
undefined |
{ default: { default } } |
'default' |
'default' |
undefined |
undefined |
{ default } |
false |
true |
default-export-esModule default-export-esm |
'default' |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
'default' |
'default' |
undefined |
undefined |
{ [__esModule], default } |
true |
true |
default-export-esModule-esm-reexport | undefined |
undefined |
undefined |
true |
true |
{ [__esModule] } |
undefined |
undefined |
undefined |
undefined |
{ [__esModule] } |
true |
true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { named, default } } |
'default' |
'default' |
'named' |
'named' |
{ named, default } |
false |
true |
named-and-default-export-babel-getter | 'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule], named: [G], default: [G] } |
true |
true |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule], named, default } |
true |
true |
named-and-default-export-esModule-esm-reexport named-and-default-export-esm-reexport |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
undefined |
undefined |
'named' |
'named' |
{ [__esModule], named: [G] } |
true |
true |
named-and-default-export-esm | 'default' |
'named' |
'named' |
true |
true |
{ [__esModule], default, named } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule], default, named } |
true |
true |
named-and-default-export-esm-esm-reexport tla-esm-esm-reexport |
runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error | runtime error |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named]: [G], [default]: [G] } } |
'default' |
'default' |
'named' |
'named' |
{ [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-getter-esModule | 'default' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'default' |
'default' |
'named' |
'named' |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
true |
true |
named-and-default-export-inherited | { named, default } |
'named' |
undefined |
undefined |
undefined |
{ default: { named, default } } |
'default' |
'default' |
'named' |
'named' |
{ named, default } |
false |
true |
named-and-default-export-live | { named, default } |
'named' |
'named-outdated' |
undefined |
undefined |
{ named: 'named-outdated', default: { named, default } } |
'default' |
'default' |
'named-outdated' |
'named' |
{ named, default } |
false |
true |
named-and-default-export-non-enumerable named-and-default-export-non-enumerable-inherited |
{ [named], [default] } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named], [default] } } |
'default' |
'default' |
'named' |
'named' |
{ [named], [default] } |
false |
true |
named-and-null-default-export named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { named, default: null } } |
null |
null |
'named' |
'named' |
{ named, default: null } |
false |
true |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
null |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
null |
null |
'named' |
'named' |
{ [__esModule], named, default: null } |
true |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named], [default]: null } } |
null |
null |
'named' |
'named' |
{ [named], [default]: null } |
false |
true |
named-export named-export-runtime single-object-export |
{ named } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { named } } |
undefined |
undefined |
'named' |
'named' |
{ named } |
false |
true |
named-export-esModule named-export-esm named-export-runtime-esModule |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
undefined |
undefined |
'named' |
'named' |
{ [__esModule], named } |
true |
true |
named-export-non-enumerable | { [named] } |
'named' |
undefined |
undefined |
undefined |
{ default: { [named] } } |
undefined |
undefined |
'named' |
'named' |
{ [named] } |
false |
true |
order | { b, a, c } |
undefined |
undefined |
undefined |
undefined |
{ b, a, c, default: { b, a, c } } |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
true |
order-esModule | undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
undefined |
undefined |
undefined |
undefined |
{ [__esModule], b, a, c } |
true |
true |
order-esm | undefined |
undefined |
undefined |
true |
true |
{ [__esModule], a, b, c } |
undefined |
undefined |
undefined |
undefined |
{ [__esModule], a, b, c } |
true |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
'named' |
'named' |
undefined |
undefined |
{ named, default: { default, named } } |
'default' |
'default' |
'named' |
'named' |
{ default, named } |
false |
true |
single-empty-string-export | '' |
undefined |
undefined |
undefined |
undefined |
{ default: '' } |
undefined |
undefined |
undefined |
undefined |
'' |
false |
false |
single-null-export | null |
type error | undefined |
type error | undefined |
{ default: null } |
type error | undefined |
type error | undefined |
null |
false |
false |
single-promise-object-export | Promise { { named } } |
undefined |
undefined |
undefined |
undefined |
{ default: Promise { { named } } } |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
true |
single-promise-object-with-default-export | Promise { { named, default } } |
undefined |
undefined |
undefined |
undefined |
{ default: Promise { { named, default } } } |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
true |
single-promise-string-export | Promise { 'single' } |
undefined |
undefined |
undefined |
undefined |
{ default: Promise { 'single' } } |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
true |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
undefined |
undefined |
undefined |
undefined |
{ default: 'single' } |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
false |
single-string-export-esm-reexport | undefined |
undefined |
undefined |
true |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
undefined |
undefined |
undefined |
undefined |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
true |
true |
single-string-export-live | 'single-outdated' |
undefined |
undefined |
undefined |
undefined |
{ default: 'single-outdated' } |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
false |
tla-esModule tla-esModule-esm-reexport tla-esm |
syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error | syntax error |
When using a .mjs
file or .js
in a package.json context with "type": "module"
.
Version: webpack@5.81.0
node@20.0.0
webpack | import x import { default as x } import * as x; x.default |
import * as x; ident(x).default |
import { named as x } import * as x; x.named |
import * as x; ident(x).named |
import { __esModule as x } import * as x; x.__esModule |
import * as x; ident(x).__esModule |
import * as x |
import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
x = require(); ident(x).named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export | { default } |
{ default } |
undefined + errors |
undefined |
true + errors |
true |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
false |
default-export-esModule | { [__esModule], default } |
{ [__esModule], default } |
undefined + errors |
undefined |
true |
true |
[Module: null prototype] { [__esModule], default: [G] { [__esModule], default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { [__esModule], default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
true |
false |
default-export-esModule-esm-reexport | undefined + errors |
undefined |
undefined + errors |
undefined |
true |
true |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
true |
true |
default-export-esm | 'default' |
'default' |
undefined + errors |
undefined |
true + errors |
true |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default: [G], [Module] } |
true |
true |
default-export-runtime | { default } |
{ default } |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
false |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport |
{ named, default } |
{ named, default } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-babel-getter | { [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named: [G], default: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named: [G], default: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
true |
false |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
true |
false |
named-and-default-export-esModule-esm-reexport | undefined + errors |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-esm | 'default' |
'default' |
'named' |
'named' |
true + errors |
true |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], default: [G], named: [G], [Module] } |
true |
true |
named-and-default-export-esm-esm-reexport named-and-default-export-esm-reexport named-export-esm |
undefined + errors |
undefined |
'named' |
'named' |
true + errors |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
false |
named-and-default-export-getter-esModule | { [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
true |
false |
named-and-default-export-inherited named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
{ named, default } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-live | { named, default } |
{ named, default } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
'default' |
'default' |
'named-outdated' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-non-enumerable | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-default-export-non-enumerable-inherited | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-null-default-export | { named, default: null } |
{ named, default: null } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
false |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
true |
false |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
false |
named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
{ named, default: null } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
false |
named-export | { named } |
{ named } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
false |
named-export-esModule named-export-runtime-esModule |
{ [__esModule], named } |
{ [__esModule], named } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
true |
false |
named-export-non-enumerable | { [named] } |
{ [named] } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
false |
named-export-runtime single-object-export |
{ named } |
{ named } |
'named' |
'named' |
true |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
false |
order | { b, a, c } |
{ b, a, c } |
undefined + errors |
undefined |
true + errors |
true |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
false |
order-esModule | { [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
undefined + errors |
undefined |
true |
true |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { [__esModule], b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { [__esModule], b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
true |
false |
order-esm | undefined + errors |
undefined |
undefined + errors |
undefined |
true + errors |
true |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
true |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
{ default, named } |
'named' |
'named' |
true + errors |
true |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
false |
single-empty-string-export | '' |
'' |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], default: [G: ''], [Module] } |
[Module: null prototype] { [__esModule], default: [G: ''], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
false |
single-null-export | null |
null |
type error | undefined |
true |
true |
[Module: null prototype] { [__esModule], default: [G: null], [Module] } |
[Module: null prototype] { [__esModule], default: [G: null], [Module] } |
type error | undefined |
type error | type error | undefined |
type error | undefined |
null |
false |
false |
single-promise-object-export | Promise { { named } } |
Promise { { named } } |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], constructor: [G: <Inspection threw>], then: [G: <Inspection threw>], catch: [G: <Inspection threw>], finally: [G: <Inspection threw>], default: [G] Promise { { named } }, [Module] } |
{ named } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
false |
single-promise-object-with-default-export | Promise { { named, default } } |
Promise { { named, default } } |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], constructor: [G: <Inspection threw>], then: [G: <Inspection threw>], catch: [G: <Inspection threw>], finally: [G: <Inspection threw>], default: [G] Promise { { named, default } }, [Module] } |
{ named, default } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
false |
single-promise-string-export | Promise { 'single' } |
Promise { 'single' } |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], constructor: [G: <Inspection threw>], then: [G: <Inspection threw>], catch: [G: <Inspection threw>], finally: [G: <Inspection threw>], default: [G] Promise { 'single' }, [Module] } |
'single' |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
false |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
'single' |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
false |
single-string-export-esm-reexport | undefined + errors |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
true |
true |
single-string-export-live | 'single-outdated' |
'single-outdated' |
undefined |
undefined |
true |
true |
[Module: null prototype] { [__esModule], default: [G: 'single-outdated'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single-outdated'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
false |
tla-esModule tla-esModule-esm-reexport |
compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error |
tla-esm | 'default' |
'default' |
'named' |
'named' |
true + errors |
true |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } |
false |
true |
tla-esm-esm-reexport | undefined + errors |
undefined |
'named' |
'named' |
true + errors |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { [__esModule], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } |
false |
true |
When using a .js
without "type": "module"
in the package.json context and ESM is automatic-detect (no import
or export
used).
Version: webpack@5.81.0
node@20.0.0
webpack-js | import x import { default as x } import * as x; x.default |
import * as x; ident(x).default |
import { named as x } import * as x; x.named |
import * as x; ident(x).named |
import { __esModule as x } import * as x; x.__esModule |
import * as x; ident(x).__esModule |
import * as x |
import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
x = require(); ident(x).named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export | { default } |
{ default } |
undefined + warnings |
undefined |
true + warnings |
true |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
false |
default-export-esModule | 'default' |
'default' |
undefined + warnings |
undefined |
true |
true |
{ [__esModule], default } |
{ [__esModule], default } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
true |
true |
default-export-esModule-esm-reexport | undefined + warnings |
undefined |
undefined + warnings |
undefined |
true |
true |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
true |
true |
default-export-esm | 'default' |
'default' |
undefined + warnings |
undefined |
true + warnings |
true |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default: [G], [Module] } |
true |
true |
default-export-runtime | { default } |
'default' |
undefined |
undefined |
true |
undefined |
{ default } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
false |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport |
{ named, default } |
{ named, default } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-babel-getter | 'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
true |
true |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
true |
true |
named-and-default-export-esModule-esm-reexport | undefined + warnings |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-esm | 'default' |
'default' |
'named' |
'named' |
true + warnings |
true |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], default: [G], named: [G], [Module] } |
true |
true |
named-and-default-export-esm-esm-reexport named-and-default-export-esm-reexport named-export-esm |
undefined + warnings |
undefined |
'named' |
'named' |
true + warnings |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
false |
named-and-default-export-getter-esModule | 'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
true |
true |
named-and-default-export-inherited named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
'default' |
'named' |
'named' |
true |
undefined |
{ named, default } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-live | { named, default } |
{ named, default } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
'default' |
'default' |
'named-outdated' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-non-enumerable | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-default-export-non-enumerable-inherited | { [named], [default] } |
'default' |
'named' |
'named' |
true |
undefined |
{ [named], [default] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-null-default-export | { named, default: null } |
{ named, default: null } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
false |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
null |
null |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
true |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
false |
named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
null |
'named' |
'named' |
true |
undefined |
{ named, default: null } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
false |
named-export | { named } |
{ named } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
false |
named-export-esModule | undefined + warnings |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
{ [__esModule], named } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
true |
true |
named-export-non-enumerable | { [named] } |
{ [named] } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
false |
named-export-runtime single-object-export |
{ named } |
undefined |
'named' |
'named' |
true |
undefined |
{ named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
false |
named-export-runtime-esModule | undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
{ [__esModule], named } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
true |
true |
order | { b, a, c } |
{ b, a, c } |
undefined + warnings |
undefined |
true + warnings |
true |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
false |
order-esModule | undefined + warnings |
undefined |
undefined + warnings |
undefined |
true |
true |
{ [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
true |
true |
order-esm | undefined + warnings |
undefined |
undefined + warnings |
undefined |
true + warnings |
true |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
true |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
{ default, named } |
'named' |
'named' |
true + warnings |
true |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
false |
single-empty-string-export | '' |
undefined |
undefined |
undefined |
true |
undefined |
'' |
[Module: null prototype] { [__esModule], default: [G: ''], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
false |
single-null-export | null |
undefined |
type error | undefined |
true |
undefined |
null |
[Module: null prototype] { [__esModule], default: [G: null], [Module] } |
type error | undefined |
type error | type error | undefined |
type error | undefined |
null |
false |
false |
single-promise-object-export | Promise { { named } } |
undefined |
undefined |
undefined |
true |
undefined |
Promise { { named } } |
{ named } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
false |
single-promise-object-with-default-export | Promise { { named, default } } |
undefined |
undefined |
undefined |
true |
undefined |
Promise { { named, default } } |
{ named, default } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
false |
single-promise-string-export | Promise { 'single' } |
undefined |
undefined |
undefined |
true |
undefined |
Promise { 'single' } |
'single' |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
false |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
undefined |
undefined |
undefined |
true |
undefined |
'single' |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
false |
single-string-export-esm-reexport | undefined + warnings |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
true |
true |
single-string-export-live | 'single-outdated' |
undefined |
undefined |
undefined |
true |
undefined |
'single-outdated' |
[Module: null prototype] { [__esModule], default: [G: 'single-outdated'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
false |
tla-esModule tla-esModule-esm-reexport |
compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error |
tla-esm | 'default' |
'default' |
'named' |
'named' |
true + warnings |
true |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } |
false |
true |
tla-esm-esm-reexport | undefined + warnings |
undefined |
'named' |
'named' |
true + warnings |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { [__esModule], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } |
false |
true |
Version: @rollup/plugin-commonjs@24.1.0
rollup@3.21.3
node@20.0.0
rollup | import x import { default as x } |
import * as x; x.default |
import * as x; ident(x).default |
import { named as x } |
import * as x; x.named |
import * as x; ident(x).named |
import { __esModule as x } |
import * as x; x.__esModule |
import * as x; ident(x).__esModule |
import * as x |
import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
x = require(); ident(x).named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
{ default } |
{ default } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { default } } |
[Object: null prototype] { default: { default } } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
true |
default-export-esModule | 'default' |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
undefined |
[Object: null prototype] { default } |
[Object: null prototype] { default } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
false |
true |
default-export-esModule-esm-reexport | compilation error | undefined + warnings |
undefined |
undefined |
undefined |
undefined |
true |
true |
undefined |
[Object: null prototype] {} |
{} |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule] } |
false |
true |
default-export-esm | 'default' |
'default' |
'default' |
compilation error | undefined + warnings |
undefined |
compilation error | undefined + warnings |
undefined |
[Object: null prototype] { default } |
{ default } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default: [G] } |
false |
true |
named-and-default-export | { named, default } |
{ named, default } |
{ named, default } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named, default }, named } |
[Object: null prototype] { default: { named, default }, named } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-babel-getter | 'default' |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default, named: [G] } |
[Object: null prototype] { default, named: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
false |
true |
named-and-default-export-duplicate named-and-default-export-reexport named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
{ named, default } |
{ named, default } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-esModule | 'default' |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default, named } |
[Object: null prototype] { default, named } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-default-export-esModule-duplicate | 'default' |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default: [G], named: [G] } |
[Object: null prototype] { default: [G], named: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-default-export-esModule-esm-reexport | compilation error | undefined + warnings |
undefined |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { named } |
{ named } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
false |
true |
named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
'default' |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default, named: [G] } |
[Object: null prototype] { default, named: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
true |
named-and-default-export-esm | 'default' |
'default' |
'default' |
'named' |
'named' |
'named' |
compilation error | undefined + warnings |
undefined |
[Object: null prototype] { default, named } |
{ default, named } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], default: [G], named: [G] } |
false |
true |
named-and-default-export-esm-esm-reexport named-export-esm |
compilation error | undefined + warnings |
undefined |
'named' |
'named' |
'named' |
compilation error | undefined + warnings |
undefined |
[Object: null prototype] { named } |
{ named } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
false |
true |
named-and-default-export-esm-reexport | compilation error | undefined + warnings |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { named } |
{ named } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
false |
true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
'named' |
'named' |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-getter-esModule | 'default' |
'default' |
'default' |
'named' |
'named' |
undefined |
true |
true |
undefined |
[Object: null prototype] { default } |
[Object: null prototype] { default } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
false |
true |
named-and-default-export-inherited | { named, default } |
{ named, default } |
{ named, default } |
'named' |
'named' |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named, default } } |
[Object: null prototype] { default: { named, default } } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-live | { named, default } |
{ named, default } |
{ named, default } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
'default' |
'default' |
'named-outdated' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
true |
named-and-default-export-non-enumerable named-and-default-export-non-enumerable-inherited |
{ [named], [default] } |
{ [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { [named], [default] } } |
[Object: null prototype] { default: { [named], [default] } } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
true |
named-and-null-default-export | { named, default: null } |
{ named, default: null } |
{ named, default: null } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named, default: null }, named } |
[Object: null prototype] { default: { named, default: null }, named } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
true |
named-and-null-default-export-esModule | null |
null |
null |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default: null, named } |
[Object: null prototype] { default: null, named } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
{ [named], [default]: null } |
'named' |
'named' |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { [named], [default]: null } } |
[Object: null prototype] { default: { [named], [default]: null } } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
true |
named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
{ named, default: null } |
{ named, default: null } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named, default: null }, named: [G] } |
[Object: null prototype] { default: { named, default: null }, named: [G] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
true |
named-and-null-default-export-runtime-esModule | null |
null |
null |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default: null, named: [G] } |
[Object: null prototype] { default: null, named: [G] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
true |
named-export | { named } |
{ named } |
{ named } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named }, named } |
[Object: null prototype] { default: { named }, named } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
true |
named-export-esModule | { [__esModule], named } |
{ [__esModule], named } |
{ [__esModule], named } |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default: { [__esModule], named }, named } |
[Object: null prototype] { default: { [__esModule], named }, named } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
true |
named-export-non-enumerable | { [named] } |
{ [named] } |
{ [named] } |
'named' |
'named' |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { [named] } } |
[Object: null prototype] { default: { [named] } } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
true |
named-export-runtime single-object-export |
{ named } |
{ named } |
{ named } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { named }, named: [G] } |
[Object: null prototype] { default: { named }, named: [G] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
true |
named-export-runtime-esModule | { [__esModule], named } |
{ [__esModule], named } |
{ [__esModule], named } |
'named' |
'named' |
'named' |
true |
true |
undefined |
[Object: null prototype] { default: { [__esModule], named }, named: [G] } |
[Object: null prototype] { default: { [__esModule], named }, named: [G] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
true |
order | { b, a, c } |
{ b, a, c } |
{ b, a, c } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { a, b, c, default: { b, a, c } } |
[Object: null prototype] { a, b, c, default: { b, a, c } } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
true |
order-esModule | { [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
undefined |
undefined |
undefined |
true |
true |
undefined |
[Object: null prototype] { a, b, c, default: { [__esModule], b, a, c } } |
[Object: null prototype] { a, b, c, default: { [__esModule], b, a, c } } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
false |
true |
order-esm | compilation error | undefined + warnings |
undefined |
compilation error | undefined + warnings |
undefined |
compilation error | undefined + warnings |
undefined |
[Object: null prototype] { a, b, c } |
{ a, b, c } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
false |
true |
require-circular require-circular-self |
{ default, named } + warnings |
{ default, named } + warnings |
{ default, named } + warnings |
'named' + warnings |
'named' + warnings |
'named' + warnings |
undefined + warnings |
undefined + warnings |
undefined + warnings |
[Object: null prototype] { default: { default, named }, named: [G] } + warnings |
[Object: null prototype] { default: { default, named }, named: [G] } + warnings |
'default' + warnings |
'default' + warnings |
'named' + warnings |
'named' + warnings |
'named' + warnings |
undefined + warnings |
undefined + warnings |
{ default, named } + warnings |
false + warnings |
true + warnings |
require-conditional-execution | { default, named } |
{ default, named } |
{ default, named } |
'named' |
'named' |
'named' |
undefined |
undefined |
undefined |
[Object: null prototype] { default: { default, named }, named: [G] } |
[Object: null prototype] { default: { default, named }, named: [G] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
true |
single-empty-string-export | '' |
'' |
'' |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: '' } |
[Object: null prototype] { default: '' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
true |
single-null-export | null |
null |
null |
type error | type error | undefined |
type error | type error | undefined |
[Object: null prototype] { default: null } |
[Object: null prototype] { default: null } |
type error | undefined |
type error | type error | undefined |
type error | undefined |
null |
false |
true |
single-promise-object-export | Promise { { named } } |
Promise { { named } } |
Promise { { named } } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: Promise { { named } } } |
[Object: null prototype] { default: Promise { { named } } } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
true |
single-promise-object-with-default-export | Promise { { named, default } } |
Promise { { named, default } } |
Promise { { named, default } } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: Promise { { named, default } } } |
[Object: null prototype] { default: Promise { { named, default } } } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
true |
single-promise-string-export | Promise { 'single' } |
Promise { 'single' } |
Promise { 'single' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: Promise { 'single' } } |
[Object: null prototype] { default: Promise { 'single' } } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
true |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
'single' |
'single' |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: 'single' } |
[Object: null prototype] { default: 'single' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
true |
single-string-export-esm-reexport | compilation error | undefined + warnings |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] {} |
{} |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule] } |
false |
true |
single-string-export-live | 'single-outdated' |
'single-outdated' |
'single-outdated' |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
[Object: null prototype] { default: 'single-outdated' } |
[Object: null prototype] { default: 'single-outdated' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
true |
tla-esModule tla-esModule-esm-reexport tla-esm tla-esm-esm-reexport |
compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error |
Version: esbuild@0.17.18
node@20.0.0
esbuild | import x import { default as x } |
import * as x; x.default import * as x; ident(x).default |
import { named as x } |
import * as x; x.named import * as x; ident(x).named x = require(); ident(x).named |
import { __esModule as x } |
import * as x; x.__esModule import * as x; ident(x).__esModule |
import * as x |
import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
{ default } |
undefined |
undefined |
undefined |
undefined |
{ default: { default } } |
{ default: { default } } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
false |
default-export-esModule | { [__esModule], default } |
{ [__esModule], default } |
undefined |
undefined |
true |
true |
{ default: { [__esModule], default }, [__esModule]: [G: true] } |
{ default: { [__esModule], default }, [__esModule]: [G: true] } |
'default' |
'default' |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
false |
false |
default-export-esModule-esm-reexport | undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule]: [G: true] } |
{ [__esModule]: [G: true] } |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule] } |
false |
true |
default-export-esm | 'default' |
'default' |
compilation error | undefined |
compilation error | undefined |
{ default: [G] } |
{ default: [G] } |
'default' |
'default' |
undefined |
undefined |
true |
true |
{ [__esModule], default: [G] } |
false |
true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-reexport named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
{ named, default } |
'named' |
'named' |
undefined |
undefined |
{ default: { named, default }, named: [G] } |
{ default: { named, default }, named: [G] } |
'default' |
'default' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-babel-getter | { [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'named' |
'named' |
true |
true |
{ default: { [__esModule], named: [G], default: [G] }, [__esModule]: [G: true], named: [G] } |
{ default: { [__esModule], named: [G], default: [G] }, [__esModule]: [G: true], named: [G] } |
'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
false |
false |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'named' |
'named' |
true |
true |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } |
'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
false |
false |
named-and-default-export-esModule-esm-reexport | undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], named: [G] } |
{ [__esModule]: [G: true], named: [G] } |
undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
false |
true |
named-and-default-export-esm | 'default' |
'default' |
'named' |
'named' |
compilation error | undefined |
{ default: [G], named: [G] } |
{ default: [G], named: [G] } |
'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], default: [G], named: [G] } |
false |
true |
named-and-default-export-esm-esm-reexport named-export-esm |
compilation error | undefined |
'named' |
'named' |
compilation error | undefined |
{ named: [G] } |
{ named: [G] } |
undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
false |
true |
named-and-default-export-esm-reexport | undefined |
undefined |
'named' |
'named' |
undefined |
undefined |
{ named: [G] } |
{ named: [G] } |
undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G] } |
false |
true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
'named' |
'named' |
undefined |
undefined |
{ default: { [named]: [G], [default]: [G] }, [named]: [G] } |
{ default: { [named]: [G], [default]: [G] }, [named]: [G] } |
'default' |
'default' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
false |
named-and-default-export-getter-esModule | { [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'named' |
'named' |
true |
true |
{ default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [__esModule]: [G: true], [named]: [G] } |
{ default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [__esModule]: [G: true], [named]: [G] } |
'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
false |
false |
named-and-default-export-inherited | { named, default } |
{ named, default } |
'named' |
'named' |
undefined |
undefined |
{ default: { named, default }, named } |
{ default: { named, default }, named } |
'default' |
'default' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-live | { named, default } |
{ named, default } |
'named' |
'named' |
undefined |
undefined |
{ default: { named, default }, named: [G] } |
{ default: { named, default }, named: [G] } |
'default' |
'default' |
'named-outdated' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-non-enumerable | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
undefined |
undefined |
{ default: { [named], [default] }, [named]: [G] } |
{ default: { [named], [default] }, [named]: [G] } |
'default' |
'default' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-default-export-non-enumerable-inherited | { [named], [default] } |
{ [named], [default] } |
'named' |
'named' |
undefined |
undefined |
{ default: { [named], [default] }, [named] } |
{ default: { [named], [default] }, [named] } |
'default' |
'default' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-null-default-export named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
{ named, default: null } |
'named' |
'named' |
undefined |
undefined |
{ default: { named, default: null }, named: [G] } |
{ default: { named, default: null }, named: [G] } |
null |
null |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
false |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
'named' |
'named' |
true |
true |
{ default: { [__esModule], named, default: null }, [__esModule]: [G: true], named: [G] } |
{ default: { [__esModule], named, default: null }, [__esModule]: [G: true], named: [G] } |
null |
null |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
false |
false |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
'named' |
'named' |
undefined |
undefined |
{ default: { [named], [default]: null }, [named]: [G] } |
{ default: { [named], [default]: null }, [named]: [G] } |
null |
null |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
false |
named-export named-export-runtime single-object-export |
{ named } |
{ named } |
'named' |
'named' |
undefined |
undefined |
{ default: { named }, named: [G] } |
{ default: { named }, named: [G] } |
undefined |
undefined |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
false |
named-export-esModule named-export-runtime-esModule |
{ [__esModule], named } |
{ [__esModule], named } |
'named' |
'named' |
true |
true |
{ default: { [__esModule], named }, [__esModule]: [G: true], named: [G] } |
{ default: { [__esModule], named }, [__esModule]: [G: true], named: [G] } |
undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
false |
false |
named-export-non-enumerable | { [named] } |
{ [named] } |
'named' |
'named' |
undefined |
undefined |
{ default: { [named] }, [named]: [G] } |
{ default: { [named] }, [named]: [G] } |
undefined |
undefined |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
false |
order | { b, a, c } |
{ b, a, c } |
undefined |
undefined |
undefined |
undefined |
{ default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
{ default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
false |
order-esModule | { [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
undefined |
undefined |
true |
true |
{ default: { [__esModule], b, a, c }, [__esModule]: [G: true], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
{ default: { [__esModule], b, a, c }, [__esModule]: [G: true], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
false |
false |
order-esm | compilation error | undefined |
compilation error | undefined |
compilation error | undefined |
{ a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
{ a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
false |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
{ default, named } |
'named' |
'named' |
undefined |
undefined |
{ default: { default, named }, named: [G] } |
{ default: { default, named }, named: [G] } |
'default' |
'default' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
false |
single-empty-string-export | '' |
'' |
undefined |
undefined |
undefined |
undefined |
String { default: '' } |
String { default: '' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
false |
single-null-export | null |
null |
undefined |
undefined |
undefined |
undefined |
{ default: null } |
{ default: null } |
type error | undefined |
type error | type error | type error | undefined |
null |
false |
false |
single-promise-object-export | Promise { { named } } |
Promise { { named } } |
undefined |
undefined |
undefined |
undefined |
Promise { default: Promise { { named } } } |
type error | undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
type error | type error |
single-promise-object-with-default-export | Promise { { named, default } } |
Promise { { named, default } } |
undefined |
undefined |
undefined |
undefined |
Promise { default: Promise { { named, default } } } |
type error | undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
type error | type error |
single-promise-string-export | Promise { 'single' } |
Promise { 'single' } |
undefined |
undefined |
undefined |
undefined |
Promise { default: Promise { 'single' } } |
type error | undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
type error | type error |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
'single' |
undefined |
undefined |
undefined |
undefined |
String { default: 'single' } |
String { default: 'single' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
false |
single-string-export-esm-reexport | undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{} |
{} |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule] } |
false |
true |
single-string-export-live | 'single-outdated' |
'single-outdated' |
undefined |
undefined |
undefined |
undefined |
String { default: 'single-outdated' } |
String { default: 'single-outdated' } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
false |
tla-esModule tla-esModule-esm-reexport tla-esm tla-esm-esm-reexport |
compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error |
When not using the .mjs
extension.
Version: webpack@4.46.0
node@20.0.0
webpack4 | import x import { default as x } import * as x; x.default |
import * as x; ident(x).default x = require(); ident(x).default |
import { named as x } import * as x; x.named |
import * as x; ident(x).named x = require(); ident(x).named |
import { __esModule as x } import * as x; x.__esModule |
import * as x; ident(x).__esModule x = require(); ident(x).__esModule |
import * as x |
import() |
x = require(); x.default |
{ named } = require() |
x = require(); x.named |
{ __esModule } = require() x = require(); x.__esModule |
x = require() |
await import() === require() import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
'default' |
undefined |
undefined |
undefined |
undefined |
{ default } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
'default' |
undefined |
undefined |
undefined |
{ default } |
false |
default-export-esModule | 'default' |
'default' |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
{ [__esModule], default } |
'default' |
undefined |
undefined |
true |
{ [__esModule], default } |
true |
default-export-esModule-esm-reexport | undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
undefined |
undefined |
undefined |
true |
{ [__esModule], [Module] } |
true |
default-export-esm | 'default' |
'default' |
undefined + warnings |
undefined |
undefined + warnings |
true |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default, [Module] } |
'default' |
undefined |
undefined |
true |
{ [__esModule], default, [Module] } |
true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-inherited named-and-default-export-reexport named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
'default' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
'default' |
'named' |
'named' |
undefined |
{ named, default } |
false |
named-and-default-export-babel-getter | 'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'default' |
'named' |
'named' |
true |
{ [__esModule], named: [G], default: [G] } |
true |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' |
'named' |
'named' |
true |
{ [__esModule], named, default } |
true |
named-and-default-export-esModule-esm-reexport | undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
'named' |
'named' |
true |
{ [__esModule], named: [G], [Module] } |
true |
named-and-default-export-esm | 'default' |
'default' |
'named' |
'named' |
undefined + warnings |
true |
{ [__esModule], named: [G], default: [G], [Module] } |
{ [__esModule], named: [G], default, [Module] } |
'default' |
'named' |
'named' |
true |
{ [__esModule], named: [G], default, [Module] } |
true |
named-and-default-export-esm-esm-reexport named-export-esm |
undefined + warnings |
undefined |
'named' |
'named' |
undefined + warnings |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
'named' |
'named' |
true |
{ [__esModule], named: [G], [Module] } |
true |
named-and-default-export-esm-reexport | undefined |
undefined |
'named' |
'named' |
undefined |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
'named' |
'named' |
true |
{ [__esModule], named: [G], [Module] } |
true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
'default' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
'default' |
'named' |
'named' |
undefined |
{ [named]: [G], [default]: [G] } |
false |
named-and-default-export-getter-esModule | 'default' |
'default' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'default' |
'named' |
'named' |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
true |
named-and-default-export-live | { named, default } |
'default' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
'default' |
'named-outdated' |
'named' |
undefined |
{ named, default } |
false |
named-and-default-export-non-enumerable named-and-default-export-non-enumerable-inherited |
{ [named], [default] } |
'default' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
'default' |
'named' |
'named' |
undefined |
{ [named], [default] } |
false |
named-and-null-default-export named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
null |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
[Module: null prototype] { [__esModule], default: { named, default: null }, named: [G], [Module] } |
null |
'named' |
'named' |
undefined |
{ named, default: null } |
false |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
null |
null |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
null |
'named' |
'named' |
true |
{ [__esModule], named, default: null } |
true |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
null |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
null |
'named' |
'named' |
undefined |
{ [named], [default]: null } |
false |
named-export named-export-runtime single-object-export |
{ named } |
undefined |
'named' |
'named' |
undefined |
undefined |
{ named } |
[Module: null prototype] { [__esModule], default: { named }, named: [G], [Module] } |
undefined |
'named' |
'named' |
undefined |
{ named } |
false |
named-export-esModule named-export-runtime-esModule |
undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
{ [__esModule], named } |
undefined |
'named' |
'named' |
true |
{ [__esModule], named } |
true |
named-export-non-enumerable | { [named] } |
undefined |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
undefined |
'named' |
'named' |
undefined |
{ [named] } |
false |
order | { b, a, c } |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
[Module: null prototype] { [__esModule], default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
order-esModule | undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
undefined |
undefined |
undefined |
true |
{ [__esModule], b, a, c } |
true |
order-esm | undefined + warnings |
undefined |
undefined + warnings |
undefined |
undefined + warnings |
true |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
undefined |
undefined |
undefined |
true |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
'default' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
[Module: null prototype] { [__esModule], default: { default, named }, named: [G], [Module] } |
'default' |
'named' |
'named' |
undefined |
{ default, named } |
false |
single-empty-string-export | '' |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
[Module: null prototype] { [__esModule], default: '', [Module] } |
undefined |
undefined |
undefined |
undefined |
'' |
false |
single-null-export | null |
undefined |
type error | undefined |
type error | undefined |
null |
[Module: null prototype] { [__esModule], default: null, [Module] } |
type error | type error | type error | type error | null |
false |
single-promise-object-export | Promise { { named } } |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
[Module: null prototype] { [__esModule], default: Promise { { named } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
single-promise-object-with-default-export | Promise { { named, default } } |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
[Module: null prototype] { [__esModule], default: Promise { { named, default } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
single-promise-string-export | Promise { 'single' } |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
[Module: null prototype] { [__esModule], default: Promise { 'single' }, [Module] } |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
single-string-export-esm-reexport | undefined |
undefined |
undefined |
undefined |
undefined |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
undefined |
undefined |
undefined |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
true |
single-string-export-live | 'single-outdated' |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
[Module: null prototype] { [__esModule], default: 'single-outdated', [Module] } |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
tla-esModule tla-esModule-esm-reexport tla-esm tla-esm-esm-reexport |
compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error |
When using the .mjs
extension.
Version: webpack@4.46.0
node@20.0.0
webpack4-mjs | import x import { default as x } import * as x; x.default |
import * as x; ident(x).default |
import { named as x } import * as x; x.named |
import * as x; ident(x).named |
import { __esModule as x } import * as x; x.__esModule |
import * as x; ident(x).__esModule |
import * as x |
import() |
x = require(); x.default |
x = require(); ident(x).default |
{ named } = require() |
x = require(); x.named |
x = require(); ident(x).named |
{ __esModule } = require() x = require(); x.__esModule |
x = require(); ident(x).__esModule |
x = require() |
await import() === require() |
import * as x; x === await import() |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default-export default-export-runtime |
{ default } |
{ default } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
undefined |
undefined |
{ default } |
false |
false |
default-export-esModule | { [__esModule], default } |
{ [__esModule], default } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule], default }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule], default }, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default } |
true |
false |
default-export-esModule-esm-reexport | undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], [Module] } |
true |
true |
default-export-esm | 'default' |
'default' |
undefined + errors |
undefined |
undefined + errors |
true |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default, [Module] } |
'default' |
'default' |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], default, [Module] } |
true |
true |
named-and-default-export named-and-default-export-duplicate named-and-default-export-inherited named-and-default-export-reexport named-and-default-export-runtime single-object-with-default-export single-object-with-default-export-duplicate |
{ named, default } |
{ named, default } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-babel-getter | { [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule], named: [G], default: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule], named: [G], default: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default: [G] } |
true |
false |
named-and-default-export-esModule named-and-default-export-esModule-duplicate named-and-default-export-esModule-reexport named-and-default-export-runtime-esModule |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default } |
true |
false |
named-and-default-export-esModule-esm-reexport | undefined |
undefined |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-esm | 'default' |
'default' |
'named' |
'named' |
undefined + errors |
true |
{ [__esModule], named: [G], default: [G], [Module] } |
{ [__esModule], named: [G], default, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], default, [Module] } |
true |
true |
named-and-default-export-esm-esm-reexport named-export-esm |
undefined + errors |
undefined |
'named' |
'named' |
undefined + errors |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-esm-reexport | undefined |
undefined |
'named' |
'named' |
undefined |
true |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named: [G], [Module] } |
true |
true |
named-and-default-export-getter | { [named]: [G], [default]: [G] } |
{ [named]: [G], [default]: [G] } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named]: [G], [default]: [G] } |
false |
false |
named-and-default-export-getter-esModule | { [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
true |
false |
named-and-default-export-live | { named, default } |
{ named, default } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
'default' |
'default' |
'named-outdated' |
'named' |
'named' |
undefined |
undefined |
{ named, default } |
false |
false |
named-and-default-export-non-enumerable named-and-default-export-non-enumerable-inherited |
{ [named], [default] } |
{ [named], [default] } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default] } |
false |
false |
named-and-null-default-export named-and-null-default-export-runtime single-object-with-null-default-export |
{ named, default: null } |
{ named, default: null } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named, default: null } |
false |
false |
named-and-null-default-export-esModule named-and-null-default-export-runtime-esModule |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named, default: null } |
true |
false |
named-and-null-default-export-non-enumerable | { [named], [default]: null } |
{ [named], [default]: null } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
null |
null |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named], [default]: null } |
false |
false |
named-export named-export-runtime single-object-export |
{ named } |
{ named } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ named } |
false |
false |
named-export-esModule named-export-runtime-esModule |
{ [__esModule], named } |
{ [__esModule], named } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule], named }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule], named }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
true |
true |
{ [__esModule], named } |
true |
false |
named-export-non-enumerable | { [named] } |
{ [named] } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
undefined |
undefined |
'named' |
'named' |
'named' |
undefined |
undefined |
{ [named] } |
false |
false |
order | { b, a, c } |
{ b, a, c } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], default: { b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
{ b, a, c } |
false |
false |
order-esModule | { [__esModule], b, a, c } |
{ [__esModule], b, a, c } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { [__esModule], b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], default: { [__esModule], b, a, c }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b, a, c } |
true |
false |
order-esm | undefined + errors |
undefined |
undefined + errors |
undefined |
undefined + errors |
true |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
true |
true |
require-circular require-circular-self require-conditional-execution |
{ default, named } |
{ default, named } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
'default' |
'default' |
'named' |
'named' |
'named' |
undefined |
undefined |
{ default, named } |
false |
false |
single-empty-string-export | '' |
'' |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: '', [Module] } |
[Module: null prototype] { [__esModule], default: '', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'' |
false |
false |
single-null-export | null |
null |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: null, [Module] } |
[Module: null prototype] { [__esModule], default: null, [Module] } |
type error | undefined |
type error | type error | undefined |
type error | undefined |
null |
false |
false |
single-promise-object-export | Promise { { named } } |
Promise { { named } } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: Promise { { named } }, [Module] } |
[Module: null prototype] { [__esModule], default: Promise { { named } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named } } |
false |
false |
single-promise-object-with-default-export | Promise { { named, default } } |
Promise { { named, default } } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: Promise { { named, default } }, [Module] } |
[Module: null prototype] { [__esModule], default: Promise { { named, default } }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { { named, default } } |
false |
false |
single-promise-string-export | Promise { 'single' } |
Promise { 'single' } |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: Promise { 'single' }, [Module] } |
[Module: null prototype] { [__esModule], default: Promise { 'single' }, [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
Promise { 'single' } |
false |
false |
single-string-export single-string-export-defined single-string-export-duplicate single-string-export-getter single-string-export-reexport |
'single' |
'single' |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single' |
false |
false |
single-string-export-esm-reexport | undefined |
undefined |
undefined |
undefined |
undefined |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
true |
true |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
true |
true |
single-string-export-live | 'single-outdated' |
'single-outdated' |
undefined + errors |
undefined |
undefined + errors |
true |
[Module: null prototype] { [__esModule], default: 'single-outdated', [Module] } |
[Module: null prototype] { [__esModule], default: 'single-outdated', [Module] } |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
undefined |
'single-outdated' |
false |
false |
tla-esModule tla-esModule-esm-reexport tla-esm tla-esm-esm-reexport |
compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error | compilation error |
default-export | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
import * as x; ident(x).default |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
{ default } ✅ |
import { named as x } |
undefined |
undefined |
syntax error 💎 | undefined |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ default: { default } } |
{ default: { default } } |
[Module: null prototype] { default: { default }, [Module] } |
[Object: null prototype] { default: { default } } 🟡 |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
{ default } 🟡 |
[Module: null prototype] { [__esModule], default: { default }, [Module] } 🟡 |
import() |
{ default: { default } } |
{ default: { default } } |
[Module: null prototype] { default: { default }, [Module] } |
[Object: null prototype] { default: { default } } 🟡 |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
default-export-esModule | babel babel-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule], default } |
{ [__esModule], default } |
'default' |
{ [__esModule], default } |
'default' |
{ [__esModule], default } |
import { named as x } |
undefined |
undefined |
syntax error 💎 | undefined |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined + errors 💎 |
import * as x; ident(x).named { named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], default } |
{ default: { [__esModule], default }, [__esModule]: [G: true] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], default }, [Module] } 🟡 |
[Object: null prototype] { default } 💎 |
[Module: null prototype] { [__esModule], default: [G] { [__esModule], default }, [Module] } 💎 |
{ [__esModule], default } |
[Module: null prototype] { [__esModule], default: { [__esModule], default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
true ✅ |
false 💎 |
default-export-esModule-esm-reexport | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default import * as x; ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import { __esModule as x } import * as x; x.__esModule import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule] } 🟡 |
{ [__esModule]: [G: true] } 💎 |
[Module: null prototype] { __esModule, [Module] } 🟡 |
[Object: null prototype] {} 💎 |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
import() |
{ [__esModule] } 🟡 |
{ [__esModule]: [G: true] } 💎 |
[Module: null prototype] { __esModule, [Module] } 🟡 |
{} 💎 |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule] } |
{ [__esModule] } |
require(esm) not allowed 🟡 | { [__esModule] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | false 💎 |
true ✅ |
true ✅ |
true ✅ |
default-export-esm | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
import { named as x } |
undefined |
compilation error | syntax error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.named |
undefined |
undefined |
undefined |
undefined + warnings 🟡 |
undefined + errors 💎 |
undefined + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | true + errors |
true + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.__esModule |
true |
undefined |
undefined |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 🟡 |
undefined 🟡 |
undefined 🟡 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], default } 🟡 |
{ default: [G] } 💎 |
[Module: null prototype] { default, [Module] } 🟡 |
[Object: null prototype] { default } 💎 |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
import() |
{ [__esModule], default } |
{ default: [G] } |
[Module: null prototype] { default, [Module] } |
{ default } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default, [Module] } |
{ [__esModule], default, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
require(esm) not allowed 💎 | 'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], default } |
{ [__esModule], default: [G] } |
require(esm) not allowed | { [__esModule], default: [G] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default, [Module] } |
{ [__esModule], default, [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
default-export-runtime | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
import * as x; ident(x).default |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
'default' 💎 |
{ default } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true 💎 |
true 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: { default } } |
{ default: { default } } |
[Module: null prototype] { default: { default }, [Module] } |
[Object: null prototype] { default: { default } } 🟡 |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } 🟡 |
{ default } |
{ default } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } 🟡 |
import() |
{ default: { default } } |
{ default: { default } } |
[Module: null prototype] { default: { default }, [Module] } |
[Object: null prototype] { default: { default } } 🟡 |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
[Object: null prototype] { default: { named, default }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
[Object: null prototype] { default: { named, default }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-babel-getter | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'default' |
{ [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named: [G], default: [G] } |
{ default: { [__esModule], named: [G], default: [G] }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named: [G], default: [G] }, named, [Module] } 🟡 |
[Object: null prototype] { default, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named: [G], default: [G] }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named: [G], default: [G] }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-duplicate | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-esModule | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } 🟡 |
[Object: null prototype] { default, named } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-esModule-duplicate | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } 🟡 |
[Object: null prototype] { default: [G], named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-esModule-esm-reexport | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } import * as x; x.__esModule import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], named: [G] } 🟡 |
{ [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, named, [Module] } 🟡 |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
{ [__esModule], named: [G] } 🟡 |
{ [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, named, [Module] } 🟡 |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
require(esm) not allowed 🟡 | { [__esModule], named: [G] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | false 💎 |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-esModule-reexport | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } 🟡 |
[Object: null prototype] { default, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-esm | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | true + errors |
true + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.__esModule |
true |
undefined |
undefined |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 🟡 |
undefined 🟡 |
undefined 🟡 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], default, named } |
{ default: [G], named: [G] } |
[Module: null prototype] { default, named, [Module] } |
[Object: null prototype] { default, named } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], named: [G], default: [G], [Module] } |
{ [__esModule], named: [G], default: [G], [Module] } |
import() |
{ [__esModule], default, named } |
{ default: [G], named: [G] } |
[Module: null prototype] { default, named, [Module] } |
{ default, named } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], named: [G], default, [Module] } |
{ [__esModule], named: [G], default, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
require(esm) not allowed 💎 | 'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], default, named } |
{ [__esModule], default: [G], named: [G] } |
require(esm) not allowed | { [__esModule], default: [G], named: [G] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], named: [G], default, [Module] } |
{ [__esModule], named: [G], default, [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-esm-esm-reexport | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } |
runtime error | compilation error | syntax error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.default |
runtime error | undefined |
undefined |
undefined + warnings |
undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; ident(x).default |
runtime error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
runtime error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
runtime error | compilation error | syntax error | compilation error | true + errors |
true + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.__esModule |
runtime error | undefined |
undefined |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
runtime error 🟡 | undefined |
undefined |
undefined |
true |
true |
true |
true |
import * as x |
runtime error 🟡 | { named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
runtime error 🟡 | { named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
runtime error 💎 | undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
runtime error 💎 | 'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
runtime error 💎 | true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
runtime error 🟡 | { [__esModule], named: [G] } 🟡 |
require(esm) not allowed 🟡 | { [__esModule], named: [G] } 🟡 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
runtime error 🟡 | false 🟡 |
require(esm) not allowed 🟡 | false 🟡 |
true |
true |
true |
true |
import * as x; x === await import() |
runtime error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-esm-reexport | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
true 🟡 |
undefined |
syntax error 🟡 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
import * as x; x.__esModule |
true 💎 |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
import * as x; ident(x).__esModule |
true ✅ |
undefined 🟡 |
undefined 🟡 |
undefined 🟡 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], named: [G] } 🟡 |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
{ [__esModule], named: [G] } 🟡 |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
require(esm) not allowed 🟡 | { [__esModule], named: [G] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | false 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-getter | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
import * as x; ident(x).default |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
'default' 💎 |
{ [named]: [G], [default]: [G] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined |
'named' |
undefined |
'named' |
'named' |
'named' |
'named' |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
'named' 🟡 |
undefined ✅ |
undefined ✅ |
'named' 🟡 |
'named' 🟡 |
'named' 🟡 |
undefined ✅ |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ default: { [named]: [G], [default]: [G] } } |
{ default: { [named]: [G], [default]: [G] }, [named]: [G] } |
[Module: null prototype] { default: { [named]: [G], [default]: [G] }, [Module] } |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
{ [named]: [G], [default]: [G] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
import() |
{ default: { [named]: [G], [default]: [G] } } |
{ default: { [named]: [G], [default]: [G] }, [named]: [G] } |
[Module: null prototype] { default: { [named]: [G], [default]: [G] }, [Module] } |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-getter-esModule | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'default' |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
undefined 🟡 |
'named' ✅ |
undefined 🟡 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [__esModule]: [G: true], [named]: [G] } 💎 |
[Module: null prototype] { default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } 🟡 |
[Object: null prototype] { default } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-inherited | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined |
'named' |
undefined |
'named' |
'named' |
'named' |
'named' |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
'named' 🟡 |
undefined ✅ |
undefined ✅ |
'named' 🟡 |
'named' 🟡 |
'named' 🟡 |
undefined ✅ |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true 💎 |
true 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: { named, default } } |
{ default: { named, default }, named } |
[Module: null prototype] { default: { named, default }, [Module] } |
[Object: null prototype] { default: { named, default } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
{ default: { named, default } } |
{ default: { named, default }, named } |
[Module: null prototype] { default: { named, default }, [Module] } |
[Object: null prototype] { default: { named, default } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-live | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named-outdated' 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named-outdated' |
'named' |
'named-outdated' |
'named' |
'named' |
'named' |
'named' |
undefined + errors 💎 |
import * as x; ident(x).named |
'named-outdated' |
'named' |
'named-outdated' |
'named' |
'named' |
'named' |
'named' |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ named: 'named-outdated', default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named: 'named-outdated', [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
{ named: 'named-outdated', default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named: 'named-outdated', [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-non-enumerable | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
import * as x; ident(x).default |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
{ [named], [default] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ default: { [named], [default] } } |
{ default: { [named], [default] }, [named]: [G] } |
[Module: null prototype] { default: { [named], [default] }, named, [Module] } |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
{ [named], [default] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
import() |
{ default: { [named], [default] } } |
{ default: { [named], [default] }, [named]: [G] } |
[Module: null prototype] { default: { [named], [default] }, named, [Module] } |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-non-enumerable-inherited | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
import * as x; ident(x).default |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
'default' 💎 |
{ [named], [default] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined |
'named' |
undefined |
'named' |
'named' |
'named' |
'named' |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
'named' 🟡 |
undefined ✅ |
undefined ✅ |
'named' 🟡 |
'named' 🟡 |
'named' 🟡 |
undefined ✅ |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true 💎 |
true 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: { [named], [default] } } |
{ default: { [named], [default] }, [named] } |
[Module: null prototype] { default: { [named], [default] }, [Module] } |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
{ [named], [default] } |
{ [named], [default] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
import() |
{ default: { [named], [default] } } |
{ default: { [named], [default] }, [named] } |
[Module: null prototype] { default: { [named], [default] }, [Module] } |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-reexport | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-runtime | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true 💎 |
true 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
{ named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, [Module] } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-default-export-runtime-esModule | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { default: { [__esModule], named, default }, [Module] } 🟡 |
[Object: null prototype] { default, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-null-default-export | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; ident(x).default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, named, [Module] } |
[Object: null prototype] { default: { named, default: null }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
{ named, default: null } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
import() |
{ named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, named, [Module] } |
[Object: null prototype] { default: { named, default: null }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-null-default-export-esModule | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
null |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
null |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default: null } |
{ default: { [__esModule], named, default: null }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default: null }, named, [Module] } 🟡 |
[Object: null prototype] { default: null, named } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default: null }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default: null }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-null-default-export-non-enumerable | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
import * as x; ident(x).default |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
null 💎 |
{ [named], [default]: null } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ default: { [named], [default]: null } } |
{ default: { [named], [default]: null }, [named]: [G] } |
[Module: null prototype] { default: { [named], [default]: null }, named, [Module] } |
[Object: null prototype] { default: { [named], [default]: null } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
{ [named], [default]: null } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
import() |
{ default: { [named], [default]: null } } |
{ default: { [named], [default]: null }, [named]: [G] } |
[Module: null prototype] { default: { [named], [default]: null }, named, [Module] } |
[Object: null prototype] { default: { [named], [default]: null } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-null-default-export-runtime | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; ident(x).default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
null 💎 |
{ named, default: null } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true 💎 |
true 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, [Module] } |
[Object: null prototype] { default: { named, default: null }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
{ named, default: null } |
{ named, default: null } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
import() |
{ named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, [Module] } |
[Object: null prototype] { default: { named, default: null }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-and-null-default-export-runtime-esModule | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
null |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
null |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default: null } |
{ default: { [__esModule], named, default: null }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { default: { [__esModule], named, default: null }, [Module] } 🟡 |
[Object: null prototype] { default: null, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default: null }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default: null }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-export | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; ident(x).default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, named, [Module] } |
[Object: null prototype] { default: { named }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
{ named } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
import() |
{ named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, named, [Module] } |
[Object: null prototype] { default: { named }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], default: { named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-export-esModule | babel babel-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default |
undefined 💎 |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
undefined + warnings 💎 |
{ [__esModule], named } ✅ |
import * as x; ident(x).default |
undefined 🟡 |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
undefined 🟡 |
{ [__esModule], named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named } |
{ default: { [__esModule], named }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named }, named, [Module] } 🟡 |
[Object: null prototype] { default: { [__esModule], named }, named } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named }, [Module] } 💎 |
{ [__esModule], named } |
[Module: null prototype] { [__esModule], default: { [__esModule], named }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
true ✅ |
false 💎 |
named-export-esm | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
compilation error | syntax error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.default |
undefined |
undefined |
undefined |
undefined + warnings 🟡 |
undefined + errors 💎 |
undefined + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 💎 |
import * as x; ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | true + errors |
true + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.__esModule |
true |
undefined |
undefined |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 🟡 |
undefined 🟡 |
undefined 🟡 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], named } 🟡 |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
{ [__esModule], named } 🟡 |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named } 🟡 |
{ [__esModule], named: [G] } 🟡 |
require(esm) not allowed 🟡 | { [__esModule], named: [G] } 🟡 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-export-non-enumerable | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
import * as x; ident(x).default |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
undefined 💎 |
{ [named] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 🟡 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ default: { [named] } } |
{ default: { [named] }, [named]: [G] } |
[Module: null prototype] { default: { [named] }, named, [Module] } |
[Object: null prototype] { default: { [named] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
{ [named] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
import() |
{ default: { [named] } } |
{ default: { [named] }, [named]: [G] } |
[Module: null prototype] { default: { [named] }, named, [Module] } |
[Object: null prototype] { default: { [named] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-export-runtime | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; ident(x).default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
undefined 💎 |
{ named } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true 💎 |
true 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, [Module] } |
[Object: null prototype] { default: { named }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
{ named } |
{ named } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
import() |
{ named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, [Module] } |
[Object: null prototype] { default: { named }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], default: { named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
named-export-runtime-esModule | babel babel-js webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
undefined 🟡 |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named } |
{ default: { [__esModule], named }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { default: { [__esModule], named }, [Module] } 🟡 |
[Object: null prototype] { default: { [__esModule], named }, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
await import() === require() |
true ✅ |
false 🟡 |
false 🟡 |
false 🟡 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
order | babel babel-js |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default x = require() |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
import * as x; ident(x).default |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
undefined 💎 |
{ b, a, c } ✅ |
import { named as x } |
undefined |
undefined |
syntax error 💎 | undefined |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
{ b, a, c, default: { b, a, c } } |
{ default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
[Module: null prototype] { a, b, c, default: { b, a, c }, [Module] } |
[Object: null prototype] { a, b, c, default: { b, a, c } } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
{ b, a, c } |
[Module: null prototype] { [__esModule], default: { b, a, c }, [Module] } |
import() |
{ b, a, c, default: { b, a, c } } |
{ default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
[Module: null prototype] { a, b, c, default: { b, a, c }, [Module] } |
[Object: null prototype] { a, b, c, default: { b, a, c } } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
[Module: null prototype] { [__esModule], default: { b, a, c }, [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
order-esModule | babel babel-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default |
undefined 💎 |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
undefined + warnings 💎 |
{ [__esModule], b, a, c } ✅ |
import * as x; ident(x).default |
undefined 🟡 |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
undefined 🟡 |
{ [__esModule], b, a, c } ✅ |
import { named as x } |
undefined |
undefined |
syntax error 💎 | undefined |
undefined + errors 💎 |
<