Webpack 利用時、エントリポイントの階層が複雑でどう指定しまっしょい、といった時に glob を使うと楽ちんだったりします。この記事では基本的な glob の使い方を記録しておく(2019.6.4)
$ npm install glob --save-dev
src └── js ├── component │ ├── component_a │ │ └── component_a.js │ └── component_b │ └── component_b.js └── thirdparty └── thirdparty_a.js
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)
実行
$ node findJsFiles.js
glob は Linux 系OSを使ったことのある方ならば直感的にわかると思うけど、簡単に言うと *(アスタリスク)を使って曖昧にファイルを検索することができる。
上記のソースの実行結果は以下の通り
[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 の指定にも使えるね