Мне было интересно, почему моя задача сжимания jshint настолько медленная. Вот пример примера config:
var config = {
jshint: {
scripts: ['**/*.js', '!node_modules/**']
},
watch: {
files: ['**/*.js', '!node_modules/**'],
tasks: ['jshint']
}
}
Что это за шаблон? Если я правильно понял, оба шаблона файлов используют grunt api для создания списка файлов для задачи. Этот шаблон работает, он отфильтровывает все внутри node_modules, но он делает это чрезвычайно медленно, потому что перед применением фильтра, grunt полностью решает весь каталог node_modules (~ 100 МБ).
Есть ли способ на самом деле сказать хрюкать, даже не взглянув на node_modules?
Этот пример конфигурации занимает около 30 секунд на моем ноутбуке. Если используется белый список в виде черного списка, задача jshint занимает всего пару секунд. Но белый список означает, что я должен постоянно искать Gruntfile, если я делаю рефакторинг и т.д., Что очень раздражает.
Текущий шаблон списка выглядит следующим образом:
var allJSFiles = [
'*.js',
'{browser,server,config,models,routes,tasks,schema,test,utils,views}/**/*.js',
'!browser/bower_components/**'
];