我有一个简单的默认任务,用于linting更改的js文件:
gulp.task('default', function() {
// watch for JS changes
gulp.watch(base + 'javascripts/**/*.js', function() {
gulp.run('jshint');
});
});
问题是jshint任务再次获取文件:
gulp.task('jshint', function() {
gulp.src([base + 'javascripts/*.js'])
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
所发生的是所有文件都是linted,而不仅仅是已更改的文件.
有没有办法只将更改的文件传递给jshint?
最佳答案 根据@OverZealous,我发现这种方法可以使用gulp-watch:
gulp.task('default', function() {
gulp.src(base + 'javascripts/**/*.js', { read: false })
.pipe(watch())
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
需要{read:false}以避免在启动时linting所有文件.
此解决方案不会丢失首次启动时不存在的文件.