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 相关文章推荐
Script的加载方法小结
Jan 12 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 Javascript
javascript常用代码段搜集
Dec 04 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
jQuery组件easyui对话框实现代码
Aug 25 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
vue使用codemirror的两种用法
Aug 27 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
js实现中文实时时钟
Jan 15 Javascript
Json实现传值到后台代码实例
Jun 30 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python的dict判断key是否存在的方法
2020/12/09 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
大学社团活动总结
2014/04/26 职场文书
中职生求职信
2014/07/01 职场文书
大学课外活动总结
2014/07/09 职场文书
校外活动方案
2014/08/28 职场文书
义卖募捐活动总结
2015/05/09 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记