ES6:导入许多文件

时间:2016-02-16 17:06:16

标签: javascript ecmascript-6

我有一个脚本可以导入很多AMD模块并在每个模块上调用一个初始化方法:

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

我需要切换到ES6导入语法,我试图找出是否可以从列表中导入模块,方式与我的AMD代码类似。我想避免疯狂,如:

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

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

有关如何实现这一目标的任何建议? 谢谢!

1 个答案:

答案 0 :(得分:5)

  

是否可以从列表中导入模块?

不,不是没有显式调用你的模块加载器(无论哪个)。使用import声明无法做到这一点。

  

关于如何实现这一目标的任何建议?

eval可能会这样做: - )

我建议使用两个模块:

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

你可能只对一个模块(将自身作为模块命名空间对象导入)执行相同的操作,但这肯定会是真正的疯狂。