在开发或调试Node.js应用程序的时候,当你修改js文件后,总是要按下CTRL+C终止程序,然后再重新启动,即使是修改一点小小的参数,也 总是要不断地重复这几个很烦人的操作。这是因为Node.js 只有在第一次引用到某部份时才会去解析脚 本文件,以后都会直接访问内存,避免重复载入。
Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。
有没有办法做到当文件修改之后,Node.js自动重新启动(或重新加载文件)以节省时间呢?一开始我是想到用 grunt的watch模块来监控文件变化,但后来在网上一查,原来我们想到的,别人早已想到,并且已经做得很好。Node Supervisor正是这样一个可以实现这种需求的Node.js模块。
supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启Node.js。 根据Github上的说明,Node Supervisor原本是用于服务器上Node.js应用崩溃的时候,自己重新启动。当然它也可以监控你的项目的js(或CoffeeScript)文 件变化,进而重启来方便我们调试应用程序。
安装方法(以全局模块安装):
代码如下
npm install supervisor -g
如果你使用的是Linux 或Mac,直接键入上面的命令很可能会有权限错误。原因是npm 需要把supervisor 安装到系统目录,需要管理员授权,
可以使用 sudo npm install -g supervisor 命令来安装。
注意一点的就是,supervisor必须安装到全局,如果你不安装到全局,错误命令会提示你安装到全局。如果不想安装到默认的全局,也可以自己 修改全局路径到当前路径 npm config set prefix "路径"
假设你的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
本文转自:Node.js web应用模块之Supervisor
相关推荐
在Node.js中开发Web应用程序时,经常会遇到一个问题:每当代码有改动,必须重启Node.js进程才能看到更新。这对于习惯了PHP等支持热更新语言的开发者来说,无疑增加了开发过程的繁琐性。然而,作为高效的开发工具,...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,让JavaScript代码能够运行在服务器端,广泛用于构建高并发的网络应用。本文将详细讲解如何在Linux系统中搭建Node.js开发环境的步骤。 首先,Linux系统中安装...
Node.js是服务器端JavaScript的运行环境,它允许开发者在服务器端使用JavaScript编写应用程序。Node.js基于Google Chrome的V8引擎,因此在性能上非常出色,是目前世界上最快的JavaScript引擎。Node.js的出现,打破了...
在标题和描述中提到的“Node.js中看JavaScript的引用”实际上是指在Node.js中如何处理模块的加载和更新,特别是如何实现在不重启Node.js服务的情况下热更新代码。 在传统的开发流程中,修改了JavaScript代码后,...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 编写服务器端应用程序。Node.js 提供了一个高效的、非阻塞I/O模型,非常适合构建实时、数据密集型的网络应用。以下是关于 ...
Node.js开发环境配置与使用涉及到一系列的知识点,包括Node.js的基础概念、开发环境的搭建、常用命令的使用,以及如何利用Node.js平台搭建Web应用。以下将详细介绍这些知识内容。 首先,Node.js不是一个编程语言,...
npm工具包是Node.js生态系统中的重要组成部分,它提供了一个便捷的方式来管理和分享JavaScript模块。本压缩包文件"npm工具包介绍.zip"包含了一系列介绍npm上流行工具的文本资料,以下是对这些工具的详细解读: 1. *...
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供了一系列强大的特性,帮助开发者快速构建从单一页面应用到复杂的 web 应用。Express 使得构建 web 服务变得更加简单,它支持多种模板引擎,...
在Node.js开发Web应用时,Express是一个非常流行的框架,它提供了简洁的API来帮助开发者快速构建服务器端应用。Express基于Connect库,使得构建HTTP服务器变得更加简单。在本教程中,我们将探讨如何结合Supervisor和...
在Node.js环境下,有两种常见的Web服务器开发方式: 1. **原生Node.js**:通过Node.js内置的`http`模块来创建服务器。这种方式更底层,灵活性高,但同时也意味着开发者需要手动处理更多细节,例如HTTP请求和响应的...
Express 是一个基于 Node.js 平台的 web 开发框架,它提供了一系列强大的功能,简化了构建 web 应用的过程。结合 Node.js 和 Express,我们可以轻松创建一个能够抓取和处理网络数据的爬虫程序。 **什么是爬虫?** ...
在JavaScript的世界里,这样的扩展通常会利用Node.js环境运行,因为Node.js允许在服务器端执行JavaScript,提供了丰富的模块和库支持。例如,它可能使用npm(Node Package Manager)来管理依赖,使用Express框架来...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 来编写服务器端代码。MongoDB 是一种文档型数据库,其以易于使用的存储方式著称,能够存储 JSON 类型格式的文档。本文介绍...
Tree Tracker Web地图(后端-API) 该项目是使用Node.js版本12.19.0构建的。 项目知识库: : 要求Node.js 12后端开发要为后端开发设置环境,请执行以下步骤: 注意:我们建议所有这些任务都可以使用Visual Studio ...
接着,`supervisor`是一个Node.js模块,它提供了自动重启应用程序的功能,每当源代码发生变化时,都会自动重新编译并运行项目,极大地提高了开发效率。`-i client server`参数表示监控的文件目录,意味着当`client`...