我似乎无法让ESLint仅使用grunt-contrib-watch在更改的文件上运行。
我能够用JSHint做到这一点。
非常感谢任何帮助让ESLint做同样的事情。
答案 0 :(得分:1)
我设法在前几天设置了这个,所以我会发布一个可能的解决方案。
无论您是尝试使用grunt.config
还是<%= ... %>
模板动态修改配置对象(在任务之间共享数据),您的问题可能都是watch
,默认情况下,spawns child processes用于触发的任务,使eslint在不同的上下文中运行。
要解决此问题,只需在配置spawn:false
时使用watch
选项标记。
基本上,配置您的任务:
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
,但如果某个属性包含已更改的文件,则可以将其用于可能使用它们的任意数量的任务。