Sono riuscito a impostare l'altro giorno, quindi pubblicherò una possibile soluzione.
Indipendentemente dal fatto che si sta cercando di usare grunt.config
o <%= ... %>
template per modificare dinamicamente l'oggetto di configurazione (per condividere dati tra i compiti), il problema potrebbe essere che watch
, per impostazione predefinita, spawns child processes per i compiti innescato, rendendo eslint correre in un contesto diverso.
Per ovviare a questo, è sufficiente utilizzare il flag di opzioni spawn:false
durante la configurazione di watch
.
In sostanza, configurare le attività in quanto tale:
watch: {
scripts: {
files: ['**/*.js'],
tasks: ['eslint'],
options: {
spawn: false, // !!!
},
},
},
eslint: {
target: '<%= changedFiles %>'
}
quindi collegare un gestore di eventi per l'evento orologio, impostare changedFiles
:
grunt.event.on('watch', function(action, filepath){
grunt.config('changedFiles', filepath);
}
È inoltre possibile modificare eslint.target
direttamente nel gestore di eventi , ma avendo un attributo portato i file modificati lo rende disponibile a qualsiasi numero di attività che potrebbero usarli.