Я пытаюсь создать модуль, который экспортирует несколько классов ES6. Допустим, у меня есть следующая структура каталогов:
my/
└── module/
├── Foo.js
├── Bar.js
└── index.js
Foo.js
и Bar.js
каждый экспортирует класс ES6 по умолчанию:
// Foo.js
export default class Foo {
// class definition
}
// Bar.js
export default class Bar {
// class definition
}
В настоящее время я index.js
настроен так:
import Foo from './Foo';
import Bar from './Bar';
export default {
Foo,
Bar,
}
Однако я не могу импортировать. Я хочу быть в состоянии сделать это, но классы не найдены:
import {Foo, Bar} from 'my/module';
Как правильно экспортировать несколько классов в модуле ES6?
javascript
module
export
ecmascript-6
babel
окружающий
источник
источник
export
без значения по умолчаниюdefault
экспорт. Представь, если бы кто-то пытался это сделатьimport SomeClass from 'my/module'
. Это автоматически импортируетdefault
модуль с этого пути. Если бы у вас было несколько экспортов по умолчанию, как бы он узнал, какой из них импортировать?Ответы:
Попробуйте это в своем коде:
Кстати, вы также можете сделать это следующим образом:
С помощью
export
Разница в
export default
том, что вы можете экспортировать что-то, и применить имя, где вы импортируете это:источник
Unexpected token
об ошибке при строительствеexport Foo from './Foo'; export Bar from './Bar'
export { default as Foo } from './Foo';
. Я видел это в другом местеexport { default as Foo } from './Foo';
должен был фактически экспортировать это.Надеюсь это поможет:
источник
Ответ @ webdeb у меня не сработал.
unexpected token
ошибкой при компиляции ES6 с Babel, выполняя именной экспорт по умолчанию.Это сработало для меня, однако:
источник
источник
Для экспорта экземпляров классов вы можете использовать этот синтаксис:
источник