【问题标题】:Is it possible to load in browser a module dynamically by name stored in a variable?是否可以通过存储在变量中的名称在浏览器中动态加载模块?
【发布时间】:2023-03-13 23:18:01
【问题描述】:

我希望能够在运行时配置在浏览器中加载哪些模块:

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

它似乎不是开箱即用的,但也许有一些方法?

【问题讨论】:

标签: javascript module webpack browserify systemjs


【解决方案1】:

是的,有很多方法

  1. Webpack 模块热替换功能

    https://webpack.github.io/docs/hot-module-replacement.html

来自 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);
    });
}

对于方法检查这个答案

How do I include a JavaScript file in another JavaScript file?

【讨论】:

  • 谢谢,但它只能在 webpack 运行时工作吗?我可以用它来编译会加载模块的生产包吗?
猜你喜欢
  • 2014-04-23
  • 2010-11-14
  • 2021-02-21
  • 2020-09-29
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
相关资源
最近更新 更多