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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
jquery垂直公告滚动实现代码
Dec 08 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
详解Jquery实现ready和bind事件
Apr 14 Javascript
axios学习教程全攻略
Mar 26 Javascript
AngularJS中ng-class用法实例分析
Jul 06 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
Oct 20 Javascript
angular实现input输入监听的示例
Aug 31 Javascript
微信小程序缓存过期时间的使用详情
May 12 Javascript
JavaScript实现图片合成下载的示例
Nov 19 Javascript
JavaScript Dom实现轮播图原理和实例
Feb 19 Javascript
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
python实现二维数组的对角线遍历
2019/03/02 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
python pygame实现方向键控制小球
2019/05/17 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
python小白学习包管理器pip安装
2020/06/09 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
房屋转让协议书
2014/04/11 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书