特定のフォルダを除いて、gruntを使用してコードベースをリントしようとしている状況があります。
gruntは、内部でミニマッチ(bsdglobと同様)を使用してファイルを照合しますが、フォルダーを除外して.gitignoreスタイルを実行する方法がわからないようです。
これを摂取したい:
ignoreme
そしてこれらを一致させます:
/folder/path/here/to/something/ok.js
/another/folder/path.js
/test.js
しかし、これらとは一致しません:
/folder/ignoreme/something.js
/folder/path/here/to/ignoreme/metoo/file.js
これはignoremeを含むすべてに一致します:
/**/*.js
だから私は次のようなことができると思いました:
/**/!(ignoreme)/**/*.js
しかし、それはignoremeフォルダー内のファイルと一致します。
私は正規表現に慣れていますが、ここでパターンなどを繰り返す方法がわからないようです。次のようなものも試しました。
/(!(ignoreme)|*)*/*.js
コンテナが繰り返されることを期待していますが、それは機能しません。すべてに一致しないだけです。
正規表現を渡してファイルパスをうなり声を上げる方法、またはこれを機能させる方法はありますか?
アップデート:
現在、この問題に対処している方法は次のとおりです。
var pattern = /\/ignoreme\//
var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){
return !pattern.test(f)
})
ミニマッチでフォルダの除外が可能かどうかはまだ興味があります。