2014-09-24 77 views
1

其實這是我的目錄查找的怎麼樣:咕嘟咕嘟過濾器是過濾..沒有

-Project 
    -app 
    -js 
     -some.js 
     -libs 
     -some.js 
     -some.js 
    -dist 
    -js 
     -some.js 
     -libs 
     -some.js 
     -some.js 

我用一口來管理這一點,這裏是我的問題,我不能成功篩選出libs目錄到我的js lint。 (我只是想掃描我自己的JS,不是LIB)

所以我想這:

gulp.task('js', function(){ 
    var filter = gulpFilter(['**/*', '!app/js/libs/**/*.js']); 
    gulp.src('app/js/**') 
     .pipe(filter) 
     .pipe(jshint()) 
     .pipe(jshint.reporter('jshint-stylish')) 
     .pipe(filter.restore()) 
     .pipe(gulp.dest('./dist/js')) 
}); 

但jshint仍適用於庫:/

任何幫助將受到歡迎! :)

+1

你可以嘗試你的'filter'改爲'['**/*','!app/js/{lib,lib/**}']'和'src'到''app/js/**/*''? – 2014-09-24 22:09:32

+0

Thk爲您的答覆,我嘗試但仍然在libs上執行jshint。 – 2014-09-24 22:12:29

回答

2

其實你不需要過濾器來實現你想要的,因爲gulp.src支持路徑排除。更改你的任務以下,你會好;)

gulp.task('js', function() { 
    return gulp.src(['app/js/**/*.js', '!app/js/libs/**']) 
     .pipe(jshint()) 
     .pipe(jshint.reporter('jshint-stylish')) 
     .pipe(gulp.dest('./dist/js')) 
}); 

編輯:考慮您的意見,你應該使用

gulp.task('js', function(){ 
    var filter = gulpFilter(['*.js', '!app/js/libs/**']); 
    return gulp.src('app/js/**') 
     .pipe(filter) 
     .pipe(jshint()) 
     .pipe(jshint.reporter('jshint-stylish')) 
     .pipe(filter.restore()) 
     .pipe(gulp.dest('./dist/js')) 
}); 
+0

我選擇這個解決方案到目前爲止,但它使我爲我的js文件創建2個任務。 一個用於jshint我自己的JavaScript,並把它放在dist中。 另一個把我的庫放在裏面,但沒有jshint他們。 與他的filter.restore()吞嚥過濾器將允許在一個 – 2014-09-28 17:39:42