我似乎无法使用grunt-contrib watch让ESLint只在更改过的文件上运行。
我可以用JSHint做到这一点。
如果能帮助ESLint做同样的事情,我们将不胜感激。
发布于 2016-03-31 16:57:57
前几天我成功地设置了这个,所以我将发布一个可能的解决方案。
无论您是尝试使用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,但是让一个包含已更改文件的属性使其可用于可能使用这些文件的任意数量的任务。
https://stackoverflow.com/questions/31094037
复制相似问题