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 相关文章推荐
juqery 学习之六 CSS--css、位置、宽高
Feb 11 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
Mar 05 Javascript
jquery实现的美女拼图游戏实例
May 04 Javascript
javascript冒泡排序小结
Apr 10 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
angularJS 如何读写缓冲的方法(推荐)
Aug 06 Javascript
Javacript中自定义的map.js  的方法
Nov 26 Javascript
javascript中call()、apply()的区别
Mar 21 Javascript
vue实现将一个数组内的相同数据进行合并
Nov 07 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 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简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
jsTree使用记录实例
2016/12/01 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
使用canvas进行图像编辑的实例
2017/08/29 Javascript
vue跨域解决方法
2017/10/15 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
Python open读写文件实现脚本
2008/09/06 Python
Python可跨平台实现获取按键的方法
2015/03/05 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Django中使用locals()函数的技巧
2015/07/16 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
python使用knn实现特征向量分类
2018/12/26 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
Python向excel中写入数据的方法
2019/05/05 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
旷课检讨书3000字
2014/02/04 职场文书
新闻传播专业求职信
2014/07/22 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年女生节活动总结
2015/02/27 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
《火烧云》教学反思
2016/02/23 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
CSS的calc函数用法小结
2022/06/25 HTML / CSS