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 相关文章推荐
jquery 事件执行检测代码
Dec 09 Javascript
跟着Jquery API学Jquery之一 选择器
Apr 07 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
JS操作JSON要领详细总结
Aug 25 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
jquery实现增加删除行的方法
Feb 03 Javascript
原生js实现放大镜效果
Jan 11 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
创建echart多个联动的示例代码
Nov 23 Javascript
Vue源码学习之关于对Array的数据侦听实现
Apr 23 Javascript
vue实现评论列表功能
Oct 25 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
对javascript和select部件的结合运用
2006/10/09 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
php中使用websocket详解
2016/09/23 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
js 通用订单代码
2013/12/23 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
js实现进度条的方法
2015/02/13 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
python利用7z批量解压rar的实现
2019/08/07 Python
python代码实现猜拳小游戏
2020/11/30 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
本科应届生自荐信
2014/06/29 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
购房个人委托书范本
2014/10/11 职场文书
房贷工资证明范本
2015/06/12 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python