延迟模块加载如何在ES6中工作

时间:2015-05-04 14:49:31

标签: javascript import module lazy-loading ecmascript-6

我如何 lazily-load ES6模块?通过 lazy ,我的意思是我不想实际加载不需要的模块。例如,这是我可以用RequireJS做的事情:

function someEventHandler() {
    var SomeModule = require('some-module'),
        module = new SomeModule();
    // ...
}

使用ES6导入似乎无法实现相同的功能:

// Doesn't appear to be valid...
function someEventHandler() {
    import SomeModule from 'some-module';
    var module = new SomeModule();
    // ...
}

是否有可行的技术只在需要时使用ES6模块提取依赖关系?或者是跟踪完整依赖关系图并预先获取所有内容的唯一途径?

1 个答案:

答案 0 :(得分:0)

在ES6中延迟加载jQuery的示例:

import('jquery').then((jquery) => {
     // Because jquery is the module, here is the new syntax for using this 
          window.$ = jquery.default;
          window.$('#id');
});