2015-12-23 15 views
8

ich zwei JavaScript-Module haben, die wie folgt aussieht:Export ein importiertes Modul

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

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

Ich möchte myFunc von mod.js exportieren. Wie kann ich das machen?

EDIT: Ich sollte klarstellen, dass die Funktion wie erwartet von inner/mod.js exportiert wird, aber ich möchte auch die Funktion aus dem äußeren mod.js exportieren.

Die zur Klärung bitten, würde Ich mag, dies zu erreichen:

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

mod.myFunc(); 
+0

Wird ein Fehler angezeigt? – Enijar

+0

Nein Ich erhalte keinen Fehler. Aber ich exportiere auch nichts von 'mod'. Beachten Sie, dass keine Exportanweisungen vorhanden sind. – Max

+0

Können Sie näher erläutern, wie Sie dies anderswo verwenden möchten? Ich bin nicht klar von Ihrer Frage, was Sie erreichen möchten. – azium

Antwort

17

Ich glaube, was Sie suchen

ist
export * from './inner/mod'; 

Das wird Reexporte alle Ausfuhren von ./inner/mod. Die spec hat eigentlich eine sehr schöne Tabelle, die alle möglichen export und import Varianten auflistet.

+0

Der einzige Weg, der zu funktionieren scheint, ist "Import Mod from" ./inner/mod "; export {mod} '. 'Export * from './inner/mod';' scheint nicht zu funktionieren. – Max

+0

Eigentlich funktioniert es. Es funktioniert jedoch nicht, wenn 'inner/mod' eine Standardfunktion exportiert. – Max

+3

Ja, das wird nur benannte Exporte abdecken. Sie können den Standardexport mit 'export {default} aus './inner/mod';' exportieren. –

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

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

Versuchen zu sein persönliches Vertrauen in was Sie importieren, desto weniger, desto besser, weil der, dass ich Ihren Import geändert habe in mod.js. Wenn Sie do importieren *, definieren Sie eine Variable, die das Objekt aller Exportnamen aus dem importierten Modul sein wird.

Re-Export ist das gleiche wie etwas eigenes zu machen und zu exportieren.

+0

Ist es möglich, das gesamte Objekt zu exportieren? Ich möchte ein Indexmodul haben, das alle Untermodule exportiert. – Max

+0

Ow ja es ist, können Sie alles statische, Objekte, Arrays, Zeichenfolgen, Zahlen usw. exportieren. Was passiert, ist, dass alles exportiert in ein Schlüssel-Wert-Objekt ging. Der Schlüssel ist der Name des Exports, der Wert der .. Nun, das, was Sie natürlich exportieren .. Sie können keine Ausdrücke exportieren. – Norbert

+0

Sie können so viele Dinge exportieren, wie Sie möchten. – Norbert

Verwandte Themen