首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在运行时重新加载所需的模块?

如何在运行时重新加载所需的模块?
EN

Stack Overflow用户
提问于 2016-12-03 10:02:17
回答 4查看 3.3K关注 0票数 10

我想知道如何在运行时重新加载Node.js模块。

假设我有以下代码:

index.js

代码语言:javascript
运行
复制
var myModule = require("./app.js");

app.js

代码语言:javascript
运行
复制
var express = require("express");
express.listen(3000, function() {
    console.log("app listening on port 3000");
});

我尝试了多种方法来重新加载index.js模块中所需的模块。但Express应用程序不会重新启动。

我想让index.js继续运行,因为它动态地处理重新编译Babel模块。而带有快递服务器的app.js模块需要完全重新启动。

在不启动app.js的第二个进程的情况下,有什么方法可以做到这一点?

EN

Stack Overflow用户

发布于 2019-10-31 14:10:48

现在很简单,我更喜欢自己编写它,以减少依赖。

代码语言:javascript
运行
复制
function clearModule(moduleName) {
  let mp = require.resolve(moduleName)
  if (require.cache[mp]) {
    delete require.cache[mp]
    console.log(`[clear] module: ${mp}`)
  }
}

function requireReload(moduleName) {
  clearModule(moduleName);
  return require(moduleName);
}
票数 4
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40946522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档