webpack2可以像SystemJS一样动态加载模块吗

问题描述 投票:0回答:1

webpack1无法按需加载模块,就像我可以使用SystemJS

function a() {
    var moduleName = getDynamicModuleName();
    SystemJS.import(moduleName).then(function (m) {
        console.log(m);
    });
}

根据本文webpack2似乎也可以做到这一点,因此我提出了以下内容:

function a() {
    var moduleName = getDynamicModuleName();
    import(moduleName).then(function (m) {

    });
}

但是,webpack为moduleName创建了捆绑包,并给出了警告:

3:4-22 Critical dependency: the request of a dependency is an expression

因此,这并不是完全动态的,而是代码拆分的工作方式。 那么webpack2是否支持像SystemJS这样的真正动态加载?

javascript webpack-2
1个回答
1
投票

Webpack是捆绑器,不是加载器。 它提供了许多类似于loader的功能,例如requireimport以便捆绑的模块可以相互交互,仅此而已。 您正在寻找的是实际的装载机。

一种可能性是使用webpack的script-loader

require(`script!${moduleUrl}`, function() { ... })

另一种可能性是独立于webpack使用实际的加载器,例如little-loader

var load = require("little-loader"); load("http://example.com/foo.js", function (err) { // ... your code ... });

© www.soinside.com 2019 - 2024. All rights reserved.