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 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
JavaScript的作用域和块级作用域概念理解
Sep 21 Javascript
常见的javascript跨域通信方法
Dec 31 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
jQuery实现立体式数字动态增加(animate方法)
Dec 21 Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
BootStrap模态框闪退问题实例代码详解
Dec 10 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 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
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
js一组验证函数
2008/12/20 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
入党转预备思想汇报
2014/01/07 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
大型活动组织方案
2014/05/10 职场文书
世界遗产导游词
2015/02/13 职场文书
原告代理词范文
2015/05/25 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
Python pyecharts绘制条形图详解
2022/04/02 Python