2014-05-19 2 views
4

내가 linting에 대한 태스킹 간단한 기본이는 JS 파일을 변경 :파이프에 gulp.watch()를 전달하려면 어떻게해야합니까?

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에 변경된 파일 만 전달하는 방법이 있습니까?

+0

Mhm. changed()는 아무 것도 변경되지 않기 때문에 내가 필요로하지 않는 목적지가 필요하기 때문에 어색함을 느낍니다. 꿀꺽 꿀꺽 마시면서 사용하기 쉬운 곳에서 과대 광고를하는 것처럼 보입니까? – andig

+2

증분 작업에는'gulp.watch'를 사용하지 말고 [대신'gulp-watch' 플러그인을 사용하십시오.] (https://www.npmjs.org/package/gulp-watch) – OverZealous

답변

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 방지하기 위해 필요합니다. 이 솔루션은 이 아니며 처음 시작될 때 존재하지 않는 lint 파일을이 아닙니다.

관련 문제