在文件更改时重新启动node.js应用程序

正如您在node.js中所了解的,如果您编辑服务器端文件,则需要重新启动应用程序才能进行更改。
现在我想知道是否有一种方法可以在服务器内部执行此操作,正如我们知道文件发生更改或不是基于上次修改date那样,我们只需要重新运行应用程序或重新启动应用程序,或者执行一些操作没有我们可以从命令行执行的更改。
我们都知道如何用一些Grunt.js (或者类似的东西)或者supervisor来做到这一点,但是我想在没有任何外部包的情况下做到这一点。
非常感谢 :)

您最初可以启动服务器,以便在结束时重新启动。 在Bash文件中,它只是一个recursion函数。

function start(){ node index.js start } 

或者在batch file中使用goto语句

 :start node index.js goto start 

然后在你的节点服务器中,当你检测到一个文件改变时,你只需要结束这个过程

为了观看文件,有模块可以让你更容易。 例如。 看

 require('watch').watchTree('./server', process.exit); 

您也许可以使用此方法来查看在更改时必须重新启动服务器的文件: https : //nodejs.org/api/fs.html#fs_fs_watchfile_filename_options_listener

使用cluster.fork运行subprocess中的所有代码,并设置主进程在前一个subprocess退出时分叉一个新subprocess。 然后,使用chokidar简单地退出文件更改的孩子。

 // Put this at the very beginning of your code var cluster = require('cluster'); if (cluster.isMaster) { cluster.on('exit', cluster.fork); cluster.fork(); return; } require('chokidar').watch('./**/*.*').on('change', process.exit); // Rest of the code here ...