Node.jsでglob

いわゆるファイル一覧を取得する機能ですね。fs.readdir()でも良いですが、奥深いディレクトリの探索には便利です。
さっそく使ってみます。
glob - npm

$ mkdir my_glob
$ cd my_glob/
$ npm init
$ npm install glob --save
npm http GET https://registry.npmjs.org/glob
npm http 200 https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/glob/-/glob-3.1.11.tgz
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz
npm http 200 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.5.tgz
npm http 200 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.10.tgz
npm http GET https://registry.npmjs.org/lru-cache
npm http 200 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-1.1.1.tgz
glob@3.1.11 node_modules/glob
├── inherits@1.0.0
├── graceful-fs@1.1.10
└── minimatch@0.2.5 (lru-cache@1.1.1)

index.js

var glob = require("glob")

options = null;
// options is optional
glob("**/*.js", options, function (er, files) {
	// files is an array of filenames.
	// If the `nonull` option is set, and nothing
	// was found, then files is ["**/*.js"]
	// er is an error object or null.
	console.log(files);
})

出力結果

$ node index.js 
[ 'index.js',
  'node_modules/glob/examples/g.js',
  'node_modules/glob/examples/usr-local.js',
  'node_modules/glob/glob.js',
  'node_modules/glob/node_modules/graceful-fs/graceful-fs.js',
  'node_modules/glob/node_modules/graceful-fs/test/open.js',
  'node_modules/glob/node_modules/inherits/inherits.js',
  'node_modules/glob/node_modules/minimatch/minimatch.js',
  'node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js',
  'node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js',
  'node_modules/glob/node_modules/minimatch/test/basic.js',
  'node_modules/glob/node_modules/minimatch/test/brace-expand.js',
  'node_modules/glob/node_modules/minimatch/test/caching.js',
  'node_modules/glob/node_modules/minimatch/test/defaults.js',
  'node_modules/glob/test/00-setup.js',
  'node_modules/glob/test/bash-comparison.js',
  'node_modules/glob/test/cwd-test.js',
  'node_modules/glob/test/pause-resume.js',
  'node_modules/glob/test/root-nomount.js',
  'node_modules/glob/test/root.js',
  'node_modules/glob/test/zz-cleanup.js' ]

optionのstatCacheでキャッシュもできるみたいです。