fs-expand
fs-expand is a standalone module to fetch all file or directory paths that match the given globbing pattern(s), which is much like grunt.file.expand
The difference from glob
is that fs-expand
- could combine the results of several glob patterns.
- supports negative matching patterns, such as '!*.js'
expand(pattern, [options], callback);
- pattern
String|Array.<String>
accepts either a single glob pattern or an array of globbing patterns. Paths matching patterns that begin with ! will be excluded from the returned array. Patterns are processed in order, so inclusion and exclusion order is significant. - options
Object
supports all glob library options - callback
function(err, files)
the callback function. - err
Error
- files
Array.<String>
filenames found matching the pattern(s)
options.globOnly
Type Boolean=false
Only process glob patterns, if a file does not contain globstars, fs-expand
will not check the existence of the file.
<cwd>/
|-- a.js
|-- b.js
;
options.filter
Type String|Function
Either a valid fs.Stats
method name or a function that is passed the matched src
filepath and returns true
or false
.
fs.Stats
method name
filter: 'isDirectory'
Filter function
{ return fs }
It can also be asynchoronous function by using the common this.async()
style, see wrap-as-async for details
{ // Turns the filter function into an async one by calling `this.async()` var done = this fs }
Example
dir/
|-- a.js
|-- b.js
|-- README.md
var expand = ; ;
expand.sync(pattern, [options]);
The synchronous version of expand
.
Returns the filenames found.
var files = expand; console; // ['b.js']