ignoring-watcher

1.1.0 • Public • Published

ignoring-watcher

This module allows you to create a directory tree watcher while ignoring specific directories/files based on .gitignore rules. Instead of specifying which files/directories to watch it is often more convenient to specify which files/directories to not watch.

Internally, this module uses chokidar for cross-OS file watching. Also, the chokidar module internally uses anymatch to handle ignore rules.

Usage

var ignoringWatcher = require('ignoring-watcher').createWatcher({
    // Directory to watch. Defaults to process.cwd()
    dir: __dirname,
 
    // Watch multiple directories instead of a single dir
    dirs: ['some/dir', 'another/dir'],
 
    // One or more ignore patterns
    ignorePatterns: [
        '/node_modules',
        '*.marko.js'
    ],
 
    // The ignore patterns from these ignore files will all
    // be loaded and joined together
    ignoreFiles: [
        '.gitignore',
        '.npmignore'
    ],
 
    // Only the first existing ignore file (if any) will be loaded and merged
    selectIgnoreFile: [
        '.gitignore',
        '.npmignore'
    ],
 
    // If no ignore patterns were found via the other properties
    // then these ignore patterns will be used
    defaultIgnorePatterns: [
        '.*'
    ],
 
    // The following patterns will always be loaded and not impact
    // the loading of the `defaultIgnorePatterns`
    ignoreAlwaysPatterns: [
        'output-file.txt'
    ]
});
 
ignoringWatcher
    .on('modified', function(eventArgs) { // Fired for any change event (add, delete, etc.)
        var type = eventArgs.type; // add | addDir | change | unlink | unlinkDir
        var path = eventArgs.path; // The full file system path of the modified file
    });
 
 
ignoringWatcher.startWatching(); // Don't forget to start the file watching service

Maintainers

Contribute

Pull requests, bug reports and feature requests welcome.

License

ISC

Dependents (3)

Package Sidebar

Install

npm i ignoring-watcher

Weekly Downloads

418

Version

1.1.0

License

ISC

Last publish

Collaborators

  • austinkelleher
  • dylanpiercey
  • mlrawlings
  • pnidem