2019.06.04
glob を使ってファイルパスの一覧を取得
Webpack 利用時、エントリポイントの階層が複雑でどう指定しまっしょい、といった時に glob を使うと楽ちんだったりします。この記事では基本的な glob の使い方を記録しておく(2019.6.4)
環境
- node v11.10.1
- npm 6.7.0
インストール
1 |
$ npm install glob --save-dev |
サンプル
ディレクトリ構造
1 2 3 4 5 6 7 8 9 |
src └── js ├── component │ ├── component_a │ │ └── component_a.js │ └── component_b │ └── component_b.js └── thirdparty └── thirdparty_a.js |
ソース
1 2 3 4 5 6 7 8 9 10 11 |
const glob = require('glob') const getJsFiles = pattern => { glob(pattern, (err, files) => { if(err) console.log(err) console.log(files) }) } const pattern = './src/js/**/*.js' getJsFiles(pattern) |
実行
1 |
$ node findJsFiles.js |
解説
glob は Linux 系OSを使ったことのある方ならば直感的にわかると思うけど、簡単に言うと *(アスタリスク)を使って曖昧にファイルを検索することができる。
上記のソースの実行結果は以下の通り
1 2 3 4 5 |
[yakimeshi@1223 globSample]$ node findJsFiles.js ./src/js/**/*.js [ './src/js/component/component_a/component_a.js', './src/js/component/component_b/component_b.js', './src/js/thirdparty/thirdparty_a.js' ] |
配列形式で返ってくるので Webpack の entry の指定にも使えるね