我有一个简单的默认任务用于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'));
});
所发生的是所有文件,而不仅仅是已更改的文件。
有没有办法只将已更改的文件传递给jshint?
答案 0 :(得分:2)
根据@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所有文件。
此解决方案执行 not lint文件,这些文件在首次启动时不存在。