J'essaye de créer un module qui exporte plusieurs classes ES6. Disons que j'ai la structure de répertoires suivante:
my/
└── module/
├── Foo.js
├── Bar.js
└── index.js
Foo.js
et Bar.js
chacun exporte une classe ES6 par défaut:
// Foo.js
export default class Foo {
// class definition
}
// Bar.js
export default class Bar {
// class definition
}
J'ai actuellement ma index.js
configuration comme ceci:
import Foo from './Foo';
import Bar from './Bar';
export default {
Foo,
Bar,
}
Cependant, je ne peux pas importer. Je veux pouvoir le faire, mais les classes ne sont pas trouvées:
import {Foo, Bar} from 'my/module';
Quelle est la bonne façon d'exporter plusieurs classes dans un module ES6?
javascript
module
export
ecmascript-6
babel
ambiant
la source
la source
export
sans la valeur par défautdefault
exportation. Imaginez si quelqu'un essayait de le faireimport SomeClass from 'my/module'
. Cela importerait automatiquement ledefault
module à partir de ce chemin. Si vous y aviez plusieurs exportations par défaut, comment savoir laquelle importer?Réponses:
Essayez ceci dans votre code:
Btw, vous pouvez également le faire de cette façon:
En utilisant
export
La différence avec
export default
est que vous pouvez exporter quelque chose et appliquer le nom là où vous l'importez:la source
Unexpected token
erreur lors de la constructionexport Foo from './Foo'; export Bar from './Bar'
export { default as Foo } from './Foo';
. J'ai vu ça ailleursexport { default as Foo } from './Foo';
il fallait l'exporter.J'espère que cela t'aides:
la source
La réponse de @ webdeb n'a pas fonctionné pour moi, j'ai rencontré une
unexpected token
erreur lors de la compilation d'ES6 avec Babel, en effectuant des exportations nommées par défaut.Cela a fonctionné pour moi, cependant:
la source
la source
Pour exporter les instances des classes, vous pouvez utiliser cette syntaxe:
la source