gaze, 从其他细手表库的最佳部分构建的globbing fs.watch 包装器

分享于 

11分钟阅读

GitHub

  繁體 雙語
:crystal_ball: A globbing fs.watch wrapper built from the best parts of other fine watch libs.
  • 源代码名称:gaze
  • 源代码网址:http://www.github.com/shama/gaze
  • gaze源代码文档
  • gaze源代码下载
  • Git URL:
    git://www.github.com/shama/gaze.git
    Git Clone代码到本地:
    git clone http://www.github.com/shama/gaze
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/shama/gaze
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    gaze Build StatusBuild status

    从其他细手表库的最佳部分构建的globbing fs.watch 包装器。
    兼容 node.js> = 4. x, Windows,macOS 和 Linux。

    gaze

    NPM

    用法

    package.json 中安装模块:npm install gaze 或者放入并运行 npm install

    var gaze =require('gaze');// Watch all. js files/dirs in process.cwd()gaze('**/*.js', function(err, watcher) {
     // Files have all started watching// watcher === this// Get all watched filesvar watched =this.watched();
     // On file changedthis.on('changed', function(filepath) {
     console.log(filepath +' was changed');
     });
     // On file addedthis.on('added', function(filepath) {
     console.log(filepath +' was added');
     });
     // On file deletedthis.on('deleted', function(filepath) {
     console.log(filepath +' was deleted');
     });
     // On changed/added/deletedthis.on('all', function(event, filepath) {
     console.log(filepath +' was '+event);
     });
     // Get watched files with relative pathsvar files =this.relative();
    });// Also accepts an array of patternsgaze(['stylesheets/*.css', 'images/**/*.png'], function() {
     // Add more patterns later to be watchedthis.add(['js/*.js']);
    });

    备用接口

    var Gaze =require('gaze').Gaze;var gaze =newGaze('**/*');// Files have all started watchinggaze.on('ready', function(watcher) { });// A file has been added/changed/deleted has occurredgaze.on('all', function(event, filepath) { });

    错误

    gaze('**/*', function(error, watcher) {
     if (error) {
     // Handle error if it occurred while starting up }
    });// Or with the alternative interfacevar gaze =newGaze();gaze.on('error', function(error) {
     // Handle error here});gaze.add('**/*');

    minimatch/glob

    有关glob模式的更多信息,请参见 isaacs的 minimatch

    文档

    凝视( [patterns, options, callback] )

    • 要匹配的patterns { String | Array } 文件模式
    • options { Object }
    • callback { Function }
      • err { Error | null }
      • Gazewatcher { Object } 实例

    类:gaze.Gaze

    通过实例化 gaze.Gaze 类创建一个 Gaze 对象。

    var Gaze =require('gaze').Gaze;var gaze =newGaze(pattern, options, callback);
    属性
    • options 传递的选项对象。
      • interval {integer} 间隔传递给 fs.watchFile
      • 对于同一文件/事件连续调用的事件( 以毫秒为单位)的debounceDelay {integer} 延迟
      • mode {string} 强制监视模式。 'auto' ( 默认值),'watch' ( 强制本机事件) 或者 'poll' ( 强制轮询轮询)。
      • 从当前工作目录到基本文件模式的cwd {string}。 默认值为 process.cwd()
    事件
    • ready(watcher) 当文件已经被globbed并监视已经开始时。
    • 当发生 addedchangedrenamed 或者 deleted 事件时,all(event, filepath)
    • added(filepath) 当将文件添加到监视目录时。
    • changed(filepath) 当文件已经更改时。
    • deleted(filepath) 当文件被删除时。
    • renamed(newPath, oldPath) 当文件被重命名时。
    • 当观察者关闭并已经删除监视时 end()
    • error(err) 发生错误时。
    • nomatch 没有匹配的文件时。
    方法
    • EventEmitter.emitemit(event, [...]) 包装器。added | changed | renamed | deleted 事件也将触发 all 事件。
    • close() Unwatch所有文件并重置监视实例。
    • add(patterns, callback) 添加要监视的文件 patterns
    • remove(filepath) 删除被监视的文件或者目录。 不递归目录。
    • watched() 返回当前监视的文件。
    • relative([dir, unixify]) 使用相对路径返回当前监视的文件。
      • dir {string} 只返回这里目录的相关文件。
      • unixify {boolean} 返回带有 /的路径,如果在 Windows 上,则返回 。

    类似项目

    要尝试的其他大型监视库包括:

    代替正式的styleguide,请注意维护现有的编码风格。 为任何新的或者已经更改的功能添加单元测试。 Lint并使用 测试你的代码。

    发布历史

    • 1.1.3 - 修复 node 10支持( @aredridel )。 正式放弃对 node <4的支持。
    • 1.1.2 - 防止更多的ENOENT 错误转义( @alexgorbatchev )。
    • 1.1.1 - 防止 fs.watch 错误转义错误处理程序( @rosen-vladimirov )。 不使用 path.sep ( @wyicwx ) 修复 _addToWatched
    • 1.1.0 - 使用 minimatch> = 3.0.0 更新到 globule@1.0.0
    • 1.0.0 - 恢复到 0.5.2. node.js v0.8的拖放支持。 修复 maxListeners。更新 globule0.2.0
    • 0.6.4 - 从 readdir ( @oconnore ) 捕获和发出 Error。 修正 0 maxListeners。使用 graceful-fs 来避免在其他地方使用 EMFILE 错误。 确定 pathwatcher 是否生成的更好方法。 修复过程的活动太多,只有在监视文件时,才会初始化 pathwatcher。 在 Windows ( @pvolok ) 上构建时,设置为 Windows Vista。
    • 0.6.3 - 添加对 node.js v0.11的支持
    • 0.6.2 - 用 watched() 修正参数错误。 修复文件夹中错误的added 事件。 忽略 msvs 生成错误 4244.
    • 0.6.1 - 修复绝对路径。
    • 0.6.0 - 使用本地操作系统事件( pathwatcher的fork ),但可以回退到stat轮询。 所有内容都是异步的,以避免阻塞,包括 relative()watched()。 更好的错误处理。更新到 globule@0.2.0。 默认情况下不再监视 cwd。 添加了 mode 选项更好的EMFILE 消息。 使用符号符号避免 ENOENT 错误。 所有构造函数参数都是可选的。
    • 0.5.2 - 使用不存在的符号符号 [BACKPORTED] 修复 ENOENT 错误。
    • 0.5.1 - 使用 setImmediate ( node.js v0.8的process.nextTick ) 推迟 ready/nomatch 事件的( @amasad )。
    • 0.5.0 - 在监视文件时,进程现在保持活动状态。 当没有文件匹配时发出 nomatch 事件。
    • 0.4.3 - 在新创建的文件夹中跟踪文件添加( @brett-shwom )。
    • 0.4.2 - 修复 .remove() 方法以删除目录( @kaelzhang ) 中的单个文件。 固定" Cannot call method 'call' of undefined "( @krasimir )。跟踪文件夹( @brett-shwom ) 中的新文件添加。
    • 0.4.1 - 修复 watchDir 不遵守竞争条件( @chrisirhc )。
    • 0.4.0 - 对 node.js v0.6的支持。 将 globule 用于文件匹配。 避免 node.js v0.10 path.resolve/join 错误。 register 新文件添加到不存在的文件夹时。 多个实例现在可以轮询相同的文件( @jpommerening )。
    • 0.3.4 - 清除代码。 固定" path must be strings "( @groner )。修复错误的added 事件( @groner )。
    • 0.3.3 - 对多个模式匹配的模式进行修复。
    • 0.3.2 - 在 removeAllListeners 前发出 end
    • 0.3.1 - 在子文件夹模式中修复 added 事件。
    • 0.3.0 - 处理safewrite事件,删除 forceWatchMethod 选项,Bug 修复和监视优化( @rgaskill )。
    • 在后续的add 呼叫没有获得监视( @samcday )的情况下,0.2.2 修复问题。 close 上的removeAllListeners
    • 0.2.1 - 在当前工作目录中修复无效的added 事件。
    • 0.2.0 - 支持和标记带有 path.sep的文件夹。 添加 forceWatchMethod 选项。支持 renamed 事件。
    • 0.1.6 - 正确识别 cwd 选项
    • 0.1.5 - Catch" too many open file "错误"
    • 0.1.4 - 用 2个表真正修复竞争条件
    • 0.1.3 - 使用 2个表修复竞争条件
    • 0.1.2 - 读取触发更改事件修复
    • 0.1.1 - 次要修复
    • 0.1.0 - 初始版本

    许可证

    版权所有( c ) 2018 Kyle Robinson Young
    许可许可许可。


    PAR  WRAP  换行  监听  GLOB  LIBS  
    相关文章