sokra / interop-test

ESM-CJS interop test

Home Page:https://sokra.github.io/interop-test/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ESM-CJS interop test

Test fixtures

See 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;
    • Is a falsy default export handled different from a truthy default export?
  • named-export
    • exports.named = "named";
    • How are only named exports handled?
  • tla
    • await Promise.resolve();
    • A module using top-level-await
    • Is this syntax supported?
  • order.js
    • exports.b = "b"; exports.a = "a"; exports.c = "c";
    • Are exports in namespace objects alphabetically ordered?
  • single-
    • module.exports = ...
    • How is a single module.exports export handled?
  • single-...-defined
    • Object.defineProperty(module, "exports", { value: ... })
  • single-promise-
    • module.exports = Promise.resolve(...)
    • Is a Promise handled when using import()?
    • Is it handled like Top-Level-Await when using import?
  • -esModule
    • Object.defineProperty(exports, "__esModule", { value: true });
    • How is the default export handled with __esModule?
  • -non-enumerable
    • Exports defined with Object.defineProperty(exports, "name", { value: "value" });
    • Does non-enumerable exports behave like normal exports?
  • -getter
    • Exports defined with Object.defineProperty(exports, "name", { get: () => "value" });
    • Does getter exports behave like normal exports?
  • -inherited
    • Exports set on the prototype of exports
    • Does inherited exports behave like normal exports?
  • -runtime
    • Export keys and values not compile time constant, also for __esModule
    • Is the behavior different when module is not statically analysable?
  • -live
    • Exports are set one tick after module evaluation
    • Are exports live-bindings or copied after evaluation?
  • -esm-reexport
    • Module is reexported via export * from "..."
    • Is there a behavior change from reexporting?
    • Is default export (incorrectly) exported?
  • -reexport
    • Module is reexported via module.export = require("...")
    • Is there a behavior change from reexporting?
  • -esm
    • An ESM module
    • How does the ESM module compare to the CommonJS equivalent?

Results

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'

Node.js

current version

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

long term stable version

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

Babel behaves different depending on the file extension. If it is .mjs, it will compile in a strictNamespace mode.

.mjs file

Version: @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 file

Version: @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

Webpack

ESM-flagged

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

automatic ESM

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

Rollup

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

esbuild

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

Webpack 4

normal

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

mjs extension

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

Results by test case

  • πŸ’Ž hard outlier
  • 🟑 outlier
  • βœ… very common value

default-export

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

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

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

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 βœ…

About

ESM-CJS interop test

https://sokra.github.io/interop-test/


Languages

Language:JavaScript 98.0%Language:SCSS 2.0%