NodeJS热部署工具 — supervisor

大家都在开发nodejs应用时遇到过这样的情况,修改nodejs应用中的程序文件后必须重启nodejs才能重新加载应用代码。这是因为nodejs加载过一次文件后就将其缓存在内存中,以后再读取这个文件直接从内存中读取,所以后面再修改此文件nodejs都不会加载了。这样的设计提高了性能,但降低了开发效率。

频繁的重启nodejs各位coder同学们肯定会疯掉的,这些小事怎么能难住聪明的程序猿呢!!!! 已经有前人的解决方案了,也是一个nodejs应用 — supervisor。主要原理是:supervisor会不停的watch你应用下面的所有文件,发现有文件被修改,就重新载入程序文件这样就实现了部署,修改了程序文件后马上就能看到变更后的结果。麻麻再也不用担心我的重启nodejs了!

下面我们看看如何安装和使用supervisor

1、准备nodejs运行环境,最好安装到系统环境变量中,可以在任何路径下执行。

2、安装supervisor: npm install -g supervisor

3、使用supervisor代替nodejs启动应用

看到与使用nodejs启动应用有什么区别了吗?  多了一些debug信息,同时会提示正在watching应用目录的变化

4、看看修改程序文件后有什么变化

supervisor发现了有文件被修改了,马上重启了nodejs。

总结:

1、Nodejs现在缺少很多应用开发阶段的特性,但是它用一种开放的心态鼓励民间开发者帮助自己不断完善自己、丰富自己。而自己将所有精力放在解决nodejs中最核心的问题上。

时间: 2024-10-11 10:19:03

NodeJS热部署工具 — supervisor的相关文章

NodeJS”热部署“代码,实现动态调试

开发中遇到的问题 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重新运行才会奏效.这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置).Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改

nodejs热更新

如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重新运行才会奏效.这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置).Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而

第十七章 springboot + devtools(热部署)

技术介绍 devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件.属性文件.页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现这个启动比较慢,可以选择使用jrebel) 双类加载器机制:boot使用了两个类加载器来实现重启(restart)机制:base类加载器(简称bc)+restart类加载器(简称rc). bc:用于加载不会改变的jar(eg.第三方依赖的jar) rc:用于加载我们正在开发的jar(eg.整个项目里

Spring Boot 五种热部署方式

[推荐]2019 Java 开发者跳槽指南.pdf(吐血整理)>>> 1.模板热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下: Thymeleaf的配置: spring.thymeleaf.cache=false FreeMarker的配置: spring.freemarker.cache=false Groovy的配置: spr

菜鸟教程之工具使用(四)——借助JRebel使Tomcat支持热部署

JRebel是一个J2EE热部署的工具.使用它可以减少浪费8-18%的开发时间在项目的构建和部署上.虽然Java也提供了HotSpot的JVM,但是如果你修改的类中有方法名称变动的话,HotSpot就无能为力了,必须要重要启动应用服务器.JRebel则可以动态监视class文件及配置文件,如果有文件更新,被调用时就会被JRebel重新加载,达到热部署的目的. JRebel不仅可以在开发阶段实现热部署来提高开发效率,在项目部署投入使用以后也支持动态的加载,从而可以帮助程序完成一些特殊的功能,让程序

webpack-dev-server轻量级js高速打包、热部署服务器

webpack是一个打包web项目的工具 ,可以实现css,js,less,cass,html的混淆加密,minify,结合webpack-dev-server热部署,非常方便前端页面和Nodejs的开发. webpack 安装方法 npm install webpack --save-dev npm install webpack-dev-server --save-dev 执行webpack需要在项目目录有一个配置文件 webpack.config.js . var webpack = re

Tomcat热部署的三种方式

热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效.但是对配置文件的修改除外! 1.直接把项目web文件夹放在webapps里. 2.在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签: <Context debug="0" docBase="D:\demo1\web" path="/demo1"

IDEA第二章----配置git、tomcat(热部署)、database,让你的项目跑起来

第一节:下载git客户端,整合idea 由于博主公司用的git版本管理,所以本系列都是基于git版本工具的,当然SVN与git配置类似.git同样支持安装版和解压版,支持各种操作系统,我这里下载的是Windows的解压版. 选择刚才解压后的文件夹,选择cmd文件夹下的git.exe,然后点击Test查看是否连接成功. 注:如果没有配置git客户端,用git地址导入项目会提示你找不到git.exe. 第二节:配置tomcat(热部署稍后会讲到) tomcat下载安装就不在累赘,博主用的是tomca

Jrebel实现Jetty 热部署

一直对热部署没有真正实践过.以前搞Websphere application server的时候,就经常有客户问WAS热部署的问题,当时其实不甚了了,记得是在部署应用时选上支持二进制部署即可.具体是不是真的work了,我现在都不确定. 自己做web开发,采用的是嵌入式的Jetty方式,但Jetty不支持class的热部署,不得不经常重启,这很浪费时间.花了小半天研究如何让Jetty支持class的热部署,也没找到好办法.搜索之,发现jrebel这个工具,历史竟然不短,可惜是收费的. 于是找了个破