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的async属性以非阻塞的模式加载脚本
Jan 15 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
JavaScript驾驭网页-CSS与DOM
Mar 24 Javascript
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
Vue组件之全局组件与局部组件的使用详解
Oct 09 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
vue2 前端搜索实现示例
Feb 26 Javascript
JS中的回调函数实例浅析
Mar 21 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
May 13 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
跟我学Laravel之视图 &amp; Response
2014/10/15 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JQuery live函数
2010/12/24 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
python实现学生管理系统
2018/01/11 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
python word转pdf代码实例
2019/08/16 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
python 的topk算法实例
2020/04/02 Python
python raise的基本使用
2020/09/10 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
应聘教师推荐信
2013/10/31 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
道德模范事迹材料
2014/12/20 职场文书
医院保洁员管理制度
2015/08/05 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android