grace-server包含平滑重启和热更新的功能,使用如下:
npm
github
1、安装grace-server
npm i -g grace-server
2、在server入口文件index.js同级目录下新建grace-config.js内容如下:
module.exports = {
entry: './index.js', // server入口文件
workerNum: 2, // cluster集群worker数量
graceReloadOnFileChange: true, // 监听文件修改时,进行平滑重启服务器
reloadDelay: 1500, // worker重启延时,注意,在产品模式下,延时尽量大于1.5s,如果延时过小,会发生worker重启交叉,开发模式可以将性能考虑优先,发生重启交叉的情况不会有很大影响,所以可以设置小于1.5s。
workerTimeOut: 5000 // worker强制退出timeOut
};
3、修改server入口文件index.js,将server实例暴露出来:
module.exports = server;
4、用grace命令启动:
grace
5、运行结果
server代码如下:
var connect = require('connect');
var server = connect.createServer();
server.use((req, res, next) => {
res.writeHead(200);
res.end('Hello world');
})
server.listen(3000);
module.exports = server;
6、平滑重启:
使用
kill pid # pid为grace的进程id
可以通过
ps -A | grep grace
查询pid
grace-server使用了cluster集群模式,所以会有多个进程,主进程为第一个,bin目录下的。
使用:
kill的时候,grace立马收到了信号并进行了平滑重启。
7、热更新
当我们command + s保存文件时:
grace立马监听到了文件变化,并进行了热更新。