Ich habe es neulich eingerichtet, also poste ich eine mögliche Lösung.
Unabhängig davon, ob Sie versuchen, verwenden grunt.config
oder <%= ... %>
Templat, um das Config Objekt dynamisch zu ändern (Daten zwischen den Aufgaben zu teilen), könnte das Problem sein, dass watch
, standardmäßig spawns child processes für die ausgelösten Aufgaben, so dass eslint in einem anderen Kontext laufen.
Um dies zu umgehen, einfach verwenden Sie die spawn:false
Optionen Flag während der Konfiguration watch
.
Grundsätzlich konfigurieren Sie Ihre Aufgaben als solche:
watch: {
scripts: {
files: ['**/*.js'],
tasks: ['eslint'],
options: {
spawn: false, // !!!
},
},
},
eslint: {
target: '<%= changedFiles %>'
}
Dann einen Event-Handler, um die Uhr Ereignis zuordnen, Einstellung changedFiles
:
grunt.event.on('watch', function(action, filepath){
grunt.config('changedFiles', filepath);
}
Sie können auch eslint.target
direkt im Ereignishandler ändern , aber wenn ein Attribut die geänderten Dateien enthält, steht es einer beliebigen Anzahl von Aufgaben zur Verfügung, die sie verwenden könnten.