Closed timfish closed 3 weeks ago
@mohd-akram and I incorrectly deduced that duplicate named exports resulted in those exports being excluded.
However, this is not always the case!
With the following code: a.mjs
a.mjs
export function foo() { return 'a' }
b.mjs
export function foo() { return 'b' }
dupe.mjs
// the order here doesn't matter! export * from './a.mjs' export { foo } from './b.mjs'
test.mjs
import { foo } from './dupe.mjs' console.log('out:', foo())
> node test.mjs out: b
dupe.mjs should export foo from b.mjs. This is because explicitly named exports DO override export * exports.
foo
export *
Nice.
It continues
Will it ever end!
No. https://github.com/tc39/proposal-defer-import-eval
@mohd-akram and I incorrectly deduced that duplicate named exports resulted in those exports being excluded.
However, this is not always the case!
With the following code:
a.mjs
b.mjs
dupe.mjs
test.mjs
dupe.mjs
should exportfoo
fromb.mjs
. This is because explicitly named exports DO overrideexport *
exports.