Estoy tratando de crear un módulo que exporta múltiples clases de ES6. Digamos que tengo la siguiente estructura de directorios:
my/
└── module/
├── Foo.js
├── Bar.js
└── index.js
Foo.jsy Bar.jscada uno exporta una clase ES6 predeterminada:
// Foo.js
export default class Foo {
// class definition
}
// Bar.js
export default class Bar {
// class definition
}
Actualmente tengo mi index.jsconfiguración así:
import Foo from './Foo';
import Bar from './Bar';
export default {
Foo,
Bar,
}
Sin embargo, no puedo importar. Quiero poder hacer esto, pero no se encuentran las clases:
import {Foo, Bar} from 'my/module';
¿Cuál es la forma correcta de exportar varias clases en un módulo ES6?
javascript
module
export
ecmascript-6
babel
ambiente
fuente
fuente

exportsin el predeterminadodefaultexportación. Imagina si alguien tratara de hacerloimport SomeClass from 'my/module'. Esto importaría automáticamente eldefaultmódulo desde esa ruta. Si tuviera varias exportaciones predeterminadas allí, ¿cómo sabría cuál importar?Respuestas:
Prueba esto en tu código:
Por cierto, también puedes hacerlo de esta manera:
Utilizando
exportLa diferencia
export defaultes que puede exportar algo y aplicar el nombre donde lo importa:fuente
Unexpected tokenerror al construirexport Foo from './Foo'; export Bar from './Bar'export { default as Foo } from './Foo';. Lo he visto en otros lugaresexport { default as Foo } from './Foo';fue necesario para exportarlo.Espero que esto ayude:
fuente
La respuesta de @webdeb no funcionó para mí, encontré un
unexpected tokenerror al compilar ES6 con Babel, haciendo exportaciones predeterminadas con nombre.Esto funcionó para mí, sin embargo:
fuente
fuente
Para exportar las instancias de las clases, puede usar esta sintaxis:
fuente