2015-06-27 11 views
5

Я не могу заставить ESLint работать только с измененными файлами с помощью grunt-contrib-watch.grunt-contrib-watch не работает с eslint для просмотра только измененных наборов файлов

Я смог сделать это с помощью JSHint.

Любая помощь, чтобы получить ESLint, делает то же самое, будет с благодарностью.

ответ

1

Мне удалось установить это на днях, поэтому я опубликую возможное решение.

Независимо от того, что вы пытаетесь использовать grunt.config или <%= ... %> шаблонный динамически изменять объект конфигурации (для обмена данными между задачами), ваша проблема может быть, что watch, по умолчанию, spawns child processes для запускаемых задач, что делает eslint работать в другом контексте.

Чтобы обойти это, используйте флаг опций spawn:false при настройке watch.

В основном, настроить свои задачи, как, например:

watch: { 
    scripts: { 
    files: ['**/*.js'], 
    tasks: ['eslint'], 
    options: { 
     spawn: false, // !!! 
    }, 
    }, 
}, 
eslint: { 
    target: '<%= changedFiles %>' 
} 

Затем присоединить обработчик события к событию часов, установив changedFiles:

grunt.event.on('watch', function(action, filepath){ 
    grunt.config('changedFiles', filepath); 
} 

Вы также можете изменить eslint.target непосредственно в обработчик события , но наличие атрибута переноса измененных файлов делает его доступным для любого количества задач, которые могут их использовать.