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でキャッシュもできるみたいです。