node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用


Posted in Javascript onNovember 04, 2014

在开发或调试Node.js应用程序的时候,当你修改js文件后,总是要按下CTRL+C终止程序,然后再重新启动,即使是修改一点小小的参数,也总是要不断地重复这几个很烦人的操作。有没有办法做到当文件修改之后,Node.js自动重新启动(或重新加载文件)以节省时间呢?一开始我是想到用grunt的watch模块来监控文件变化,但后来在网上一查,原来我们想到的,别人早已想到,并且已经做得很好。Node Supervisor正是这样一个可以实现这种需求的Node.js模块。

根据Github上的说明,Node Supervisor原本是用于服务器上Node.js应用崩溃的时候,自己重新启动。当然它也可以监控你的项目的js(或CoffeeScript)文件变化,进而重启来方便我们调试应用程序。

安装方法(以全局模块安装):

npm install supervisor -g

假设你的Node.js程序主入口是app.js,那么只需要执行以下命令,即可开始监控文件变化。

supervisor app.js

Supervisor还支持多种参数,列举如下:

//要监控的文件夹或js文件,默认为'.'

-w|--watch <watchItems>
//要忽略监控的文件夹或js文件  

-i|--ignore <ignoreItems>
//监控文件变化的时间间隔(周期),默认为Node.js内置的时间

-p|--poll-interval <milliseconds>
//要监控的文件扩展名,默认为'node|js'

-e|--extensions <extensions>
//要执行的主应用程序,默认为'node'

-x|--exec <executable>
//开启debug模式(用--debug flag来启动node)

--debug
//安静模式,不显示DEBUG信息

-q|--quiet

例子:

supervisor myapp.js

supervisor -w py_scripts -e 'py' -x python myapp.py

supervisor -w lib, server.js, config.js, server.js

实现同样功能的类似产品还有Run.js和Nodeman,这两个我都没用过。但是从文档上来看,前者和Supervisor一样都是极简的5分钟就可以上手的那种,功能比Supervisor稍弱;后者的feature比较多,对应的文档就特别长,估计要研究透也得至少半个小时。选择哪一个,全看项目需求和个人喜好。

Javascript 相关文章推荐
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
写JQuery插件的基本知识
Nov 25 Javascript
node.js中的console.info方法使用说明
Dec 09 Javascript
Jquery网页内滑动缓冲导航的实现代码
Apr 05 Javascript
js无法获取到html标签的属性的解决方法
Jul 26 Javascript
js实现倒计时关键代码
May 05 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
vue实现点击隐藏与显示实例分享
Feb 13 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
Mar 11 Javascript
vue实现把接口单独存放在一个文件方式
Aug 13 Javascript
TS 类型收窄教程示例详解
Sep 23 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 #Javascript
node.js中的Socket.IO使用实例
Nov 04 #Javascript
Node.js的特点和应用场景介绍
Nov 04 #Javascript
Node.js中的模块机制学习笔记
Nov 04 #Javascript
Node.js异步I/O学习笔记
Nov 04 #Javascript
JavaScript中的ubound函数使用实例
Nov 04 #Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 #Javascript
You might like
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php四种基础算法代码实例
2013/10/29 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
python使用SMTP发送qq或sina邮件
2017/10/21 Python
numpy排序与集合运算用法示例
2017/12/15 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
夜大毕业自我鉴定
2013/10/11 职场文书
应届生保险求职信
2013/11/11 职场文书
党员干部承诺书
2014/03/25 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
个人自我剖析材料
2014/09/30 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server