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 相关文章推荐
Prototype使用指南之array.js
Jan 10 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
Mar 06 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
在React 组件中使用Echarts的示例代码
Nov 08 Javascript
开发Vue树形组件的示例代码
Dec 21 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 Javascript
vue 中的 render 函数作用详解
Feb 28 Javascript
JSONP解决JS跨域问题的实现
May 25 Javascript
vue 二维码长按保存和复制内容操作
Sep 22 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 Javascript
vue项目配置sass及引入外部scss文件
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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
php获取远程文件内容的函数
2015/11/02 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP使用函数用法详解
2018/09/30 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
vue实现分页组件
2020/06/16 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
目标管理责任书
2014/04/15 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
连锁超市项目计划书
2014/09/15 职场文书
领导欢迎词致辞
2015/01/23 职场文书
内勤岗位职责范本
2015/04/13 职场文书
2015年林业工作总结
2015/05/14 职场文书
遗嘱范文
2015/08/07 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
Android Rxjava3 使用场景详解
2022/04/07 Java/Android