Gruntjs grunt contrib watch不与eslint一起使用,只监视更改的文件集

Gruntjs grunt contrib watch不与eslint一起使用,只监视更改的文件集,gruntjs,grunt-contrib-watch,grunt-eslint,Gruntjs,Grunt Contrib Watch,Grunt Eslint,我似乎无法使用grunt contrib watch使ESLint仅在更改的文件上运行 我可以用JSHint来做这件事 如果您能帮助ESLint做到这一点,我们将不胜感激。前几天我成功地设置了这一点,因此我将发布一个可能的解决方案 无论您是尝试使用grunt.config还是模板来动态修改配置对象(在任务之间共享数据),您的问题可能是默认情况下,对于触发的任务,watch,使eslint在不同的上下文中运行 要解决这个问题,只需在配置监视时使用spawn:false选项标志 基本上,将您的任务配

我似乎无法使用grunt contrib watch使ESLint仅在更改的文件上运行

我可以用JSHint来做这件事


如果您能帮助ESLint做到这一点,我们将不胜感激。

前几天我成功地设置了这一点,因此我将发布一个可能的解决方案

无论您是尝试使用
grunt.config
还是
模板来动态修改配置对象(在任务之间共享数据),您的问题可能是默认情况下,对于触发的任务,
watch
,使eslint在不同的上下文中运行

要解决这个问题,只需在配置
监视时使用
spawn:false
选项标志

基本上,将您的任务配置为:

watch: {
  scripts: {
    files: ['**/*.js'],
    tasks: ['eslint'],
    options: {
      spawn: false, // !!!
    },
  },
},
eslint: {
  target: '<%= changedFiles %>'
}
您还可以直接在事件处理程序中修改
eslint.target
,但如果有一个属性携带更改的文件,则该属性可用于任何数量的可能使用这些文件的任务

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