В модуле ES2015, export * from 'someModule'
не экспортирует экспорт по умолчанию из 'someModule', в то время как import * as m from 'someModule'
импортирует экспорт по умолчанию из 'someModule'.
Например, в module.js:
export default 'default'
export const foo = 'foo'
в proxy.js:
export * from './module'
в bar.js:
import * as m from './module' // m is { foo: 'foo', default: 'default' }
import * as p from './proxy' // p is { foo: 'foo' }
Я протестировал его с помощью веб-пакета 4.29.6 (нулевая конфигурация).
и MDN пишет:
Следующий синтаксис не экспортирует экспорт по умолчанию из
импортированный модуль:
экспорт * из…;
Если вам нужно экспортировать значение по умолчанию, напишите следующее:
экспорт {default} из 'mod';
Разумно, чтобы export * from 'someModule'
не экспортировал экспорт по умолчанию из 'someModule', поскольку текущий модуль может также захотеть экспортировать свой собственный модуль по умолчанию. Но почему import *
включает экспорт по умолчанию? Это ожидаемое поведение от спецификации модуля ES2015?