Node.js重新加载依赖关系,无需重新启动应用程序

我写了一个mmo服务器,有人能够创build一个服务器,当他更改库文件时,它会自动反映下一个函数调用,而不必重新启动服务器本身。

(他观察目录中的更改,并自动重新加载库而不重新启动)

他谈到了一个称为节点(实验)的虚拟机模块的东西,但是我想问一下,是否有任何模块可以做到这一点,这样做有什么意义。

很less有关于VM的研究显示它是不稳定的。 但是,这是如何完成的? 在不重新启动应用程序的情况下编写服务器更新确实可以帮助开发人员,因为每次出现问题时都不需要重新开始,只需要更改一件小事,即可更改代码并立即尝试在客户端。

这不是浏览器相关的,它是一个MMORPG客户端服务器的实现。

那么真的,这怎么可能?


注意:我知道nodemon,主pipe,pm2 …这一切重新启动的应用程序,所以它杀死,并再次产生。


我正在尝试一些不使用虚拟机

var watch = require('watch') // load data var data = require('../lib/stuff.js') watch.createMonitor('/...', function (monitor) { monitor.on("changed", function (f, curr, prev) { data = require('../lib/stuff.js') console.log(data) }) }) console.log(data) 

如果我将函数添加到stuff.js理论上它将被重新加载,并且现在可以使用新函数吗? 没有重新运行主脚本?


发现上面的代码的问题将无法正常工作,因为Node.JScaching需求。

结帐热插拔: https : //github.com/rlidwka/node-hotswap/blob/master/README.md

或退房hotload(更近): https : //github.com/jan-swiecki/node-hotload

我认为这是你想要的。

我其实写了我自己的模块。 你可以在github reloadjs上find它。