ako*_*nsu 5 javascript ecmascript-6
我有一个脚本导入很多AMD模块并在每个模块上调用一个初始化方法:
define(['underscore', './mod0', ..., './modN'], function (_) {
_.each(_.toArray(arguments).slice(1), function (m) {
init(m);
});
});
Run Code Online (Sandbox Code Playgroud)
我需要切换到ES6导入语法,我试图弄清楚是否可以从列表中导入模块,方式与我的AMD代码类似.我想避免疯狂,如:
import mod0 from './mod0';
...
import modN from './modN';
init(mod0);
...
init(modN);
Run Code Online (Sandbox Code Playgroud)
关于如何实现这一点的任何建议?谢谢!
是否可以从列表中导入模块?
不,不是没有显式调用你的模块加载器(无论哪个).使用import声明无法做到这一点.
关于如何实现这一点的任何建议?
eval 可能会这样做:-)
我建议使用两个模块:
// index.js
export mod0 from './mod0';
…
export modN from './modN';
Run Code Online (Sandbox Code Playgroud)
// init-all.js
import * as modules from './index'; // enumerable namespace
for (var moduleIdentifier in modules)
init(modules[moduleIdentifier]);
Run Code Online (Sandbox Code Playgroud)
您可能只使用一个模块(将其自身作为模块命名空间对象导入)执行相同操作,但这肯定会是真正的疯狂.