nodejs自动热加载文件的做法

时间:2023-03-09 00:32:57
nodejs自动热加载文件的做法

  https://*.com/questions/1972242/how-to-auto-reload-files-in-node-js

----------------------------

If somebody still comes to this question and wants to solve it using only the standard modules I made a simple example:

var process = require('process');
var cp = require('child_process');
var fs = require('fs'); var server = cp.fork('server.js');
console.log('Server started'); fs.watchFile('server.js', function (event, filename) {
server.kill();
console.log('Server stopped');
server = cp.fork('server.js');
console.log('Server started');
}); process.on('SIGINT', function () {
server.kill();
fs.unwatchFile('server.js');
process.exit();
});

This example is only for one file (server.js), but can be adapted to multiple files using an array of files, a for loop to get all file names, or by watching a directory:

fs.watch('./', function (event, filename) { // sub directory changes are not seen
console.log(`restart server`);
server.kill();
server = cp.fork('server.js');
})

This code was made for Node.js 0.8 API, it is not adapted for some specific needs but will work in some simple apps