如何使用NodeJs来监听文件变化

1.前言

在我们调试修改代码的时候,每修改一次代码,哪怕只是很小的修改,我们都需要手动重新build文件,然后再运行代码,看修改的效果,这样的效率特别低,对于开发者来说简直不能忍。

2.构建自动编译工具

如何使用nodeJs来监听文件变化,一旦源文件修改保存时,自动运行build过程。比如当你写CoffeeScript文件或SASS文件时,保存之后可即时生成对应的JS或CSS.

基于Node.JS的侦听文件夹改变的模块有很多。

a .  fs.watch。Node.JS的文件系统也可侦听某个目录的改变

fs.watch的最大缺点就是不支持子文件夹的侦听,并且在很多情况下会侦听到两次事件(很多编辑器在保存的时侯是先把原文件清空,再进行保存,因此会触发两次文件夹改变事件)。因此需要一些开源的文件夹监听文件夹目录的改变。

b.      Chokidarchokidar 是一个基于node.JS的监听文件夹改变模块

步骤: 1. 运行 npm  install  chokidar --save-dev

                   npm  install  [-g]   shelljs

2. 创建一个文件helper.js

3. 在helper.js文件中写入:

var chokidar = require(‘chokidar‘);

var shelljs = require(‘shelljs‘);

chokidar.watch(‘accordion‘).on(‘change‘, function(){

‘use strict‘;

shelljs.exec("grunt build:accordion");

shelljs.exec("node helper.js");

//shelljs.exit(1);   执行完就退出

});

在控制台输出:node helper.js就可以使用chokidar来监控我们的test.html 文件的变化,这里是监控change变化,一旦test.html 文件有修改并保存,那么控制台就会输出语句:aaa.

shellJs是用来执行命令

c.  Watch. Watch 是另一个监听文件夹改变的Node.JS模块

类似chokidar的用法,推荐chokidar

时间: 2024-10-29 08:00:06

如何使用NodeJs来监听文件变化的相关文章

nodejs中监听文件更改(转)

https://www.jianshu.com/p/23b5e604268d nodejs下监听文件更改的插件 var path = require('path') var Chokidar = require('chokidar'); var watcher = Chokidar.watch([path.join(__dirname, '../src')], { // ignored: /(^|[\/\\])\../, persistent: true, usePolling: true, }

gulp监听文件变化,并拷贝到指定目录(转)---参考记录

###暂时不支持目录修改.创建.删除.var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var less = require('gulp-less'); var sass = require('gulp-sass'); var minifycss = require('gulp-minify-css'); var concat = require('gulp-concat'); var

gulp监听文件变化,并拷贝到指定目录

暂时不支持目录修改.创建.删除. var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var less = require('gulp-less'); var sass = require('gulp-sass'); var minifycss = require('gulp-minify-css'); var concat = require('gulp-concat'); var ug

node.js 监听文件变化并打印

1 Use node.js library "chokidar"2 Detail code: var watcher = chokidar.watch("/home/camille/Downloads", { ignored: /[\/\]./, persistent: true }); var log = console.log.bind(console); watcher .on('add', function(path) { log('File', path,

使用Node.JS监听文件夹变化

使用Node.JS监听文件夹改变有许多应用场合,比如: 构建自动编绎工具 当源文件改变时,自动运行build过程,比如当你写CoffeeScript文件或SASS CSS文件时,保存之后可即时生成对应的JS或CSS. 构建自动布署工具 通过侦听源文件夹的改变,你可以自动即时将改后的文件布署到测试服务器,加快你的开发测试速度. 这些工具其实都需要侦听文件夹的改变,基于Node.JS的侦听文件夹改变的模块有很多. fs.watch 其中Node.JS的文件系统也可侦听某个目录的改变, 如fs.wat

mvc 缓存 sqlCacheDependency 监听数据变化

对于MVC有Control缓存和Action缓存. 一.Control缓存 Control缓存即是把缓存应用到整个Control上,该Control下的所有Action都会被缓存起来. [OutputCache(Duration = 10)] public class HomeController : Controller { // GET: Home public ActionResult Index() { ViewBag.CurrentTime = DateTime.Now; return

利用Node的chokidar 监听文件改变的文件。

最近维护一个项目.每次改完东西,都要上传到服务器.然后有时候就忘记一些东西,于是就想有没有可以方法能监听文件的改变.然后我再利用程序把更改的文件一键上传到服务器. 于是就找到了nodejs 的chokidar模块. 然后利用redis的set集合.因为我们频繁更改.如果用普通的字符 会增加比较.set是一个集合,里面的元素都是不重复的.正好可以利用这个特性.帮我们记录更改的记录文件.删除的时候,然后删掉set中的文件.目前只做了增加或修改的文件提交,如果本地删除的 不会同步到服务器. 监听本地文

Angular.JS中使用$watch监听模型变化

$watch简单使用 $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEquality); 每个参数的说明如下: watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}. listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:n

win7 安装oracle 10g 未生成监听文件 导致配置监听时无法保存

最近这两天一直在为安装 的oracle 配置监听无法保存 再找各种解决方案,最后自己居然自己配置出来了. 因为缺少监听文件,拷贝别人的放到自己的目录下C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN   listener.ora.tnsnames.ora和 sqlnet.ora 1.修改 tnsnames.ora  中的 # tnsnames.ora Network Configuration File:  c:\oracle\product\10.