Javascript 是否可以按存储在变量中的名称在浏览器中动态加载模块?

Javascript 是否可以按存储在变量中的名称在浏览器中动态加载模块?,javascript,module,webpack,browserify,systemjs,Javascript,Module,Webpack,Browserify,Systemjs,我希望能够在运行时配置要在浏览器中加载的模块,如下所示: var moduleName = 'my-module' var module = require(moduleName) 这似乎不是开箱即用的,但也许有某种方法?是的,有很多方法 网页包热模块更换功能 来自Webpack文档的示例 var requestHandler = require("./handler.js"); var server = require("http").createServer(); server.on

我希望能够在运行时配置要在浏览器中加载的模块,如下所示:

var moduleName  =  'my-module'
var module = require(moduleName)

这似乎不是开箱即用的,但也许有某种方法?

是的,有很多方法

  • 网页包热模块更换功能

  • 来自Webpack文档的示例

    var requestHandler = require("./handler.js");
    var server = require("http").createServer();
    server.on("request", requestHandler);
    server.listen(8080);
    
    // check if HMR is enabled
    if(module.hot) {
        // accept update of dependency
        module.hot.accept("./handler.js", function() {
            // replace request handler of server
            server.removeListener("request", requestHandler);
            requestHandler = require("./handler.js");
            server.on("request", requestHandler);
        });
    }
    
    有关方法,请检查此答案


    Related:我检查了import关键字的语法,模块的路径必须是string literal。您找到答案了吗?谢谢,但它只在运行webpack时有效吗?我可以用它来编译将加载模块的生产包吗?