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 相关文章推荐
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
May 25 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
javascript 事件处理示例分享
Dec 31 Javascript
删除javascript所创建子节点的方法
May 21 Javascript
理解JavaScript中Promise的使用
Jan 18 Javascript
搞定immutable.js详细说明
May 02 Javascript
JavaScript实现垂直滚动条效果
Jan 18 Javascript
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
Angular6封装http请求的步骤详解
Aug 13 Javascript
微信小程序静默登录的实现代码
Jan 08 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 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 studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
PHP 事务处理数据实现代码
2010/05/13 PHP
php中动态修改ini配置
2014/10/14 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
Python实现Youku视频批量下载功能
2017/03/14 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
django使用多个数据库的方法实例
2021/03/04 Python
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
构造方法和其他方法的区别
2016/04/26 面试题
财务部副经理岗位职责范本
2014/06/17 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
单位委托书
2014/10/15 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android
python装饰器代码解析
2022/03/23 Python