小编Ton*_*hen的帖子

如果文件有任何更改,则在 node.js 中热重载外部 js 文件

是否可以根据时间戳在 node.js 中热重载外部 js 文件?

我知道 node.js 在第一次加载后缓存模块:http : //nodejs.org/docs/latest/api/modules.html#modules_caching

模块在第一次加载后被缓存。这意味着(除其他外)每次调用 require('foo') 都会返回完全相同的对象,如果它解析为相同的文件。

而且我也知道是否需要重新加载它,我可以这样做:

// first time load
var foo = require('./foo');
foo.bar()

...

// in case need to reload
delete require.cache[require;.resolve('./foo')]
foo = require('./foo')
foo.bar();
Run Code Online (Sandbox Code Playgroud)

但我想知道 node.js 中是否有任何原生支持,它会监视文件并在有任何更改时重新加载它。还是我需要自己做?

伪代码如

// during reload
if (timestamp for last loaded < file modified time)
    reload the file as above and return
else
    return cached required file
Run Code Online (Sandbox Code Playgroud)

PS 我知道主管和 nodemon 并且不想重新启动服务器以重新加载某些特定模块。

javascript node.js

5
推荐指数
1
解决办法
2154
查看次数

标签 统计

javascript ×1

node.js ×1