What is glob-watcher?
The glob-watcher package is a wrapper around the chokidar library, providing a way to watch file sets defined with glob patterns for changes. It is commonly used in build tools and scripts to automate tasks like reloading, testing, or compiling code when changes are detected in the file system.
What are glob-watcher's main functionalities?
Watching files for changes
This feature allows you to monitor a set of files defined by glob patterns for any changes. When a change is detected, a callback function is executed. It's useful for triggering rebuilds or tests automatically during development.
const { watch } = require('glob-watcher');
watch(['src/**/*.js'], (done) => {
console.log('Files have changed!');
done();
});
Debouncing and throttling events
This feature helps in controlling the rate at which events are handled. By debouncing or throttling, you can limit the number of times your callback function is called, which is particularly useful for reducing unnecessary processing during rapid file changes.
const { watch } = require('glob-watcher');
const watcher = watch('src/**/*.js', { delay: 100 });
watcher.on('change', (path) => console.log(`${path} has changed`));
Other packages similar to glob-watcher
chokidar
Chokidar is a more direct and flexible file watching library that glob-watcher depends on. It offers more detailed control over file watching events and options, making it a good choice for projects that need fine-grained event handling.
watchify
Watchify is a browserify plugin that provides a similar file watching capability, specifically optimized for incremental builds with Browserify. While it serves a similar purpose to glob-watcher, it is more tightly integrated with the Browserify ecosystem.
nodemon
Nodemon is a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected. It's similar to glob-watcher but is more focused on server-side applications.
glob-watcher
Information
Package | glob-watcher |
Description | Watch globs |
Node Version | >= 0.10 |
Usage
var watch = require('glob-watcher');
watch(['./*.js', '!./something.js'], function(){
});
var watcher = watch(['./*.js', '!./something.js']);
watcher.on('change', function(evt) {
});
watcher.add('./somefolder/somefile.js');