node-watch-changes

2.0.3 • Public • Published

Node Watcher

Run user defined commands on file changes.

Installation

npm install node-watch-changes
npm install -g node-watch-changes

Usage

Create a configuration file in the fashion of the following example.

// Define the callbacks. Available are onStart, onChange and onEnd. They all get a spawn parameter, which is a promisified version of node's child_process.spawn. The onChange callback additionally gets an events object.
 
const onStart = (spawn) => {
    console.log('Watcher is running...');
};
 
const onChange = async (events, spawn) => {
    if (events.change) {
        await spawn('npm run sass');
        await spawn('rsync -aP --delete --exclude "node_modules" "./" "server:/path/to/destination"');
    }
};
 
const onEnd = (spawn) => {
    console.log('Watcher is terminating.');
};
 
var config = {
    directory: '.', // The directory which will be watched for changes. If falsy, the parent directory of this module will be watched. Can be a string or an array of strings.
    ignore: [ // ignore can be a string, regex, function or an array containing any of them. Has to be anymatch compatible, see https://github.com/es128/anymatch
        /node_modules/,
        /\.git/
    ],
    delay: 400, // Delay the execution of the commands on change in ms
    verbosity: 'normal', // Possible values are: minimal, normal, verbose
    onStart: onStart,
    onChange: onChange,
    onEnd: onEnd
};
 
module.exports = config;

Name the file .watcher-config.js to make the module autoload it, or name it whatever you want and pass the path as an argument.

Locally installed

Require and use it.

var watcher = require('node-watch-changes');
 
watcher(); // The module uses watcherConfig.js
watcher('myConfig.js'); // The module uses myConfig.js

Globally installed

Call it from the terminal using watcher to use watcherConfig.js as the configuration file or watcher myConfig.js to use myConfig.js as the configuration file.

Package Sidebar

Install

npm i node-watch-changes

Weekly Downloads

402

Version

2.0.3

License

MIT

Unpacked Size

14.1 kB

Total Files

6

Last publish

Collaborators

  • seicun