Introduction to Globby
Globby is a highly efficient and powerful tool for performing file system operations, such as matching files using glob patterns. It’s built on top of the FastGlob
library and supports advanced features like absolute glob patterns, multiple patterns, and more.
Installation
npm install globby
Basic Usage
The primary function of Globby is to find files that match specific patterns. Here’s a simple example of how you can use it:
const globby = require('globby'); (async () => { const paths = await globby(['src/**/*.js', '!src/**/*.test.js']); console.log(paths); })();
Advanced Patterns
Globby supports advanced glob patterns to provide more control over file matching:
const paths = await globby(['*', '!*.tmp']); const pathsWithBase = await globby(['images/*', 'content/images/*']);
Options
Globby offers a variety of options to customize its behavior:
const paths = await globby('src/**/*.js', { expandDirectories: { files: ['index'], extensions: ['js', 'jsx'] }, gitignore: true });
Using Streams
Globby also supports streams for more efficient processing of large directories:
const stream = globby.stream('src/**/*.js'); stream.on('data', path => console.log(path));
Symlinked Directories
Handle symlinked directories with ease:
const paths = await globby('symlink/symlinked-dir');
Custom File System Adapters
Use it with a custom file system adapter:
const memfsAdapter = require('memfs'); const paths = await globby('/foo/**/*.js', { fs: memfsAdapter });
Real-World Example: A Simple File System Watcher
Here’s how you can build a simple application to watch for file changes using Globby:
const chokidar = require('chokidar'); const globby = require('globby'); const watchFiles = async (patterns) => { const paths = await globby(patterns); console.log('Initial scan:', paths); chokidar.watch(paths).on('all', (event, path) => { console.log(event, path); }); }; watchFiles(['src/**/*.js']);
This is a basic example that initializes a file watcher and logs any changes detected in JavaScript files in the src
directory.
Globby is a versatile and powerful tool that significantly simplifies working with file system patterns and matching. Whether you’re managing your project’s build pipeline or automating file operations, Globby offers the flexibility and performance you need.
Hash: aee62905a3c2e4ceb41390f33fd3636d1dd0452576e65f76a585eaa4ed08a0e5