web-dev-qa-db-fra.com

Exporter un module importé

J'ai deux modules javascript qui ressemblent à ceci:

// inner/mod.js
export function myFunc() {
   // ...
}

// mod.js
import * as inner from "./inner/mod";

Je souhaite exporter myFunc de mod.js. Comment puis-je faire ceci?

EDIT: Je dois préciser que la fonction est exportée comme prévu à partir de inner/mod.js mais je veux aussi exporter la fonction depuis l'extérieur mod.js.

À ceux qui demandent des éclaircissements, j'aimerais y parvenir:

// SomeOtherFile.js
import * as mod from "mod"; // NOT inner/mod

mod.myFunc();
22
Max

Je crois que ce que vous cherchez c'est

export * from './inner/mod';

Cela réexportera toutes les exportations de ./inner/mod. Le spec a en fait de très belles tables listant toutes les variantes possibles import et export .

44
Felix Kling
// inner/mod.js
export function myFunc() {
   // ...
}

// mod.js
import { myFunc } from "./inner/mod";
export { myFunc };

Essayez d'être explicite dans ce que vous importez, moins c'est mieux, car j'ai changé votre importation dans mod.js. Si vous faites import *, vous définissez une variable qui sera l'objet de toutes les exportations de noms de ce module que vous avez importé.

la réexportation équivaut à créer votre propre produit et à exporter.

14
Norbert