File system globs as a stream


Description File system globs as a stream
Node Version >= 0.9

This is a simple wrapper around node-glob to make it streamy.

var gs = require('glob-stream');
var stream = gs.create('./files/**/*.coffee', {options});
stream.on('data', function(file){
  // file has path, base, and cwd attrs 

You can pass any combination of globs. One caveat is that you can not only pass a glob negation, you must give it at least one positive glob so it knows where to start. All given must match for the file to be returned.

  • cwd
    • Default is process.cwd()
  • base
    • Default is everything before a glob starts (see glob2base)
  • cwdbase
    • Default is false
    • When true it is the same as saying opt.base = opt.cwd

This argument is passed directly to node-glob so check there for more options

var stream = gs.create(['./**/*.js', '!./node_modules/**/*']);

Globs are executed in order, so negations should follow positive globs. For example:

gulp.src(['!b*.js', '*.js'])

would not exclude any files, but this would

gulp.src(['*.js', '!b*.js'])
  • globby - Non-streaming glob wrapper with support for multiple patterns.