2016-02-16 12 views
5

Ich habe ein Skript, das eine Menge von AMD-Module und ruft eine Initialisierungsmethode auf jeder importiert:ES6: import viele Dateien

define(['underscore', './mod0', ..., './modN'], function (_) { 
    _.each(_.toArray(arguments).slice(1), function (m) { 
     init(m); 
    }); 
}); 

Ich brauche zu wechseln ES6 Import Syntax und ich versuche, herauszufinden, wenn es möglich ist, Module aus einer Liste zu importieren, ähnlich wie bei meinem AMD-Code. Ich möchte Geisteskrankheit wie vermeiden:

Irgendwelche Ratschläge, wie dies erreicht werden kann? danke!

Antwort

5

Ist es möglich, Module aus einer Liste zu importieren?

Nein, nicht ohne explizit den Modullader aufzurufen (was immer das ist). Es gibt keine Möglichkeit, dies mit import Deklarationen zu tun.

Irgendwelche Ratschläge, wie dies erreicht werden kann?

eval könnte wahrscheinlich tun es :-)

würde ich mit zwei Modulen empfehlen:

// index.js 
export mod0 from './mod0'; 
… 
export modN from './modN'; 

// init-all.js 
import * as modules from './index'; // enumerable namespace 

for (var moduleIdentifier in modules) 
    init(modules[moduleIdentifier]); 

Sie könnten möglicherweise mit nur einem einzigen Modul das gleiche tun (Das importiert sich selbst als Modul-Namespace-Objekt), aber das wäre sicherlich ein echter Wahnsinn.