Ich versuche, ein Modul zu erstellen, das mehrere ES6-Klassen exportiert. Angenommen, ich habe die folgende Verzeichnisstruktur:
my/
└── module/
├── Foo.js
├── Bar.js
└── index.js
Foo.js
und Bar.js
jeder exportiert eine Standard-ES6-Klasse:
// Foo.js
export default class Foo {
// class definition
}
// Bar.js
export default class Bar {
// class definition
}
Ich habe mein index.js
Setup derzeit so:
import Foo from './Foo';
import Bar from './Bar';
export default {
Foo,
Bar,
}
Ich kann jedoch nicht importieren. Ich möchte dies tun können, aber die Klassen werden nicht gefunden:
import {Foo, Bar} from 'my/module';
Was ist der richtige Weg, um mehrere Klassen in ein ES6-Modul zu exportieren?
javascript
module
export
ecmascript-6
babel
Umgebungs
quelle
quelle
export
ohne die Standardeinstellungdefault
Export haben. Stellen Sie sich vor, jemand hätte es versuchtimport SomeClass from 'my/module'
. Dies würde dasdefault
Modul automatisch von diesem Pfad importieren . Wenn Sie dort mehrere Standardexporte hätten, wie würde es wissen, welche importiert werden sollen?Antworten:
Versuchen Sie dies in Ihrem Code:
Übrigens können Sie es auch so machen:
Verwenden von
export
Der Unterschied
export default
besteht darin, dass Sie etwas exportieren und den Namen dort anwenden können, wo Sie es importieren:quelle
Unexpected token
export Foo from './Foo'; export Bar from './Bar'
export { default as Foo } from './Foo';
. Ich habe das woanders gesehenexport { default as Foo } from './Foo';
musste es tatsächlich exportieren.Hoffe das hilft:
quelle
Die Antwort von @ webdeb hat bei mir nicht funktioniert.
unexpected token
Beim Kompilieren von ES6 mit Babel ist ein Fehler aufgetreten. Dabei wurden benannte Standardexporte ausgeführt.Dies funktionierte jedoch für mich:
quelle
quelle
Zum Exportieren der Instanzen der Klassen können Sie die folgende Syntax verwenden:
quelle