У меня есть ситуация, когда я пытаюсь использовать 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
надеюсь, что контейнер повторится, но это не сработает, оно просто не соответствует всем.
Любой способ передать регулярное выражение для хрюкания путей к файлу или сделать это для меня?
Update:
Вот как я сейчас разбираюсь с этой проблемой:
var pattern = /\/ignoreme\//
var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){
return !pattern.test(f)
})
Мне все равно будет интересно, если исключение папки исключено в процессе минимизации.