2016-02-16 1 views
5

Ho uno script che importa un sacco di moduli AMD e chiama un metodo di inizializzazione su ciascuno:ES6: importare molti file

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

ho bisogno di passare alla sintassi di importazione ES6 e sto cercando di capire se è possibile importare moduli da un elenco, in un modo simile al mio codice AMD. Voglio evitare la follia come:

import mod0 from './mod0'; 
... 
import modN from './modN'; 

init(mod0); 
... 
init(modN); 

Qualche consiglio su come questo può essere realizzato? grazie!

risposta

5

È possibile importare moduli da un elenco?

No, non senza invocare esplicitamente il caricatore di moduli (qualunque sia). Non c'è modo di farlo usando le dichiarazioni import.

Qualche consiglio su come questo può essere realizzato?

eval potrebbe probabilmente farlo :-)

mi consiglia di utilizzare due moduli:

// 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]); 

Si potrebbe fare lo stesso con un solo modulo (che si importa come oggetto dello spazio dei nomi del modulo), ma che sicuramente sarebbe una vera follia.

Problemi correlati