Udało mi się ustawić to na drugi dzień, więc opublikuję możliwe rozwiązanie.
Niezależnie od tego, czy starasz się używać grunt.config
lub <%= ... %>
szablonów dynamicznie modyfikować obiekt config (udostępnianie danych pomiędzy zadaniami), problem może być, że watch
domyślnie spawns child processes dla uruchamianych zadań, podejmowania eslint przebiegać w innym kontekście.
Aby obejść ten problem, wystarczy użyć opcji opcji spawn:false
podczas konfigurowania watch
.
Zasadniczo skonfigurować swoje zadania jako takie:
watch: {
scripts: {
files: ['**/*.js'],
tasks: ['eslint'],
options: {
spawn: false, // !!!
},
},
},
eslint: {
target: '<%= changedFiles %>'
}
Następnie dołączyć obsługi zdarzeń w przypadku zegarka, ustawienie changedFiles
:
grunt.event.on('watch', function(action, filepath){
grunt.config('changedFiles', filepath);
}
Można również zmodyfikować eslint.target
bezpośrednio w module obsługi zdarzeń , ale posiadanie atrybutów przenosić zmienione pliki powoduje, że są one dostępne dla dowolnej liczby zadań, które mogą z nich korzystać.