Мне удалось установить это на днях, поэтому я опубликую возможное решение.
Независимо от того, что вы пытаетесь использовать 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
непосредственно в обработчик события , но наличие атрибута переноса измененных файлов делает его доступным для любого количества задач, которые могут их использовать.