【发布时间】:2015-06-27 22:10:20
【问题描述】:
我似乎无法让 ESLint 仅在使用 grunt-contrib-watch 更改的文件上运行。
我可以用 JSHint 做到这一点。
任何帮助 ESLint 做同样事情的人都将不胜感激。
【问题讨论】:
标签: gruntjs grunt-contrib-watch grunt-eslint
我似乎无法让 ESLint 仅在使用 grunt-contrib-watch 更改的文件上运行。
我可以用 JSHint 做到这一点。
任何帮助 ESLint 做同样事情的人都将不胜感激。
【问题讨论】:
标签: gruntjs grunt-contrib-watch grunt-eslint
前几天我设法设置了这个,所以我会发布一个可能的解决方案。
无论您是尝试使用grunt.config 还是<%= ... %> 模板来动态修改配置对象(在任务之间共享数据),您的问题可能是watch,默认情况下为spawns child processes对于触发的任务,使 eslint 在不同的上下文中运行。
要解决这个问题,只需在配置 watch 时使用 spawn:false 选项标志。
基本上,这样配置您的任务:
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,但是让属性携带更改的文件使其可用于可能使用它们的任意数量的任务。
【讨论】: