Node.jsでglobモジュールでワイルドカード指定する方法とディレクトリ除外する方法

Node.jsでglobモジュールでワイルドカード指定する方法とディレクトリ除外する方法

globモジュールを使ってワイルドカード指定して検索にマッチした複数ファイルを配列で返すことができます。

const glob = require('glob');

glob('*',{'ignore':['node_modules']}, function(err, files){
  if(err) {
    console.log(err)
  }
  console.log(files) // [ 'index.js', 'package-lock.json', 'package.json' ]
})

globの第二引数で{'ignore':['ディレクトリ名']}とすると、そのディレクトリとディレクトリ配下を除外することができます。

globbyモジュールならPromiseAPIサポート

globよりglobbyモジュールを使えばPromiseサポートしています。

npm install --save-dev globby

globbyなら第一引数が配列になり、配列の要素ごとにワイルドカード指定、除外するファイルやディレクトリを指定できるのでわかりやすいと思います。

const globby = require('globby');

async function find() {
  const p = await globby(['**', '!node_modules']);
  console.log(JSON.stringify(p));
}

find();
ワイルドカード 意味
**/* ディレクトリ含む全てのファイル
* ディレクトリ除く全てのファイル
!ファイル名 ファイル名を除く
!ディレクトリ名 ディレクトリ含む全てのファイルを除く

コメント

タイトルとURLをコピーしました