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 相关文章推荐
Extjs入门之动态加载树代码
Apr 09 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
jQuery 源码分析笔记(6) jQuery.data
Jun 08 Javascript
JavaScript 图像动画的小demo
May 23 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
vue 表单之通过v-model绑定单选按钮radio
May 13 Javascript
JS事件流与事件处理程序实例分析
Aug 16 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 Javascript
细说webpack6 Babel的使用详解
Sep 26 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
Nov 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
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python3实现逐字输出的方法
2019/01/23 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
班风学风建设方案
2014/05/06 职场文书
小学四年级学生评语
2014/12/26 职场文书
工程服务质量承诺书
2015/04/29 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
团委副书记工作总结
2015/08/14 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python