2014-12-25 72 views
57

我有這樣的事情:如何吞噬多個文件?

gulp.task('default', ['css', 'browser-sync'] , function() { 

    gulp.watch(['sass/**/*.scss', 'layouts/*.css'], function() { 
     gulp.run('css'); 
    }); 

}); 

,但它不工作,因爲它手錶兩個目錄中,上海社會科學院和更改佈局目錄。

我該如何使它工作,以便吞噬這些目錄內發生的任何事情?

+0

您的一瞥手錶語法錯誤。見https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpwatchglob-opts-tasks – Heikki

回答

94
gulp.task('default', ['css', 'browser-sync'] , function() { 

    gulp.watch(['sass/**/*.scss', 'layouts/**/*.css'], ['css']); 

}); 

sass/**/*.scsslayouts/**/*.css將任何更改每個目錄和子目錄手錶.scss.css文件更改。如果要改變,要任何文件做最後一位已經出現多個人(包括我)*.*

52

您可以編寫一個這樣的手錶。

gulp.task('watch', function() { 
    gulp.watch('path/to/file', ['gulp task name for css/scss']); 
    gulp.watch('path/to/file', ['gulp task name for js']); 
}); 

這樣,你通過你想看之後創建的任務的名稱是什麼文件路徑願意,你可以設置儘可能多的任務。然後,你可以寫你的默認這樣的:

gulp.task('default', ['gulp task name for css/scss', 'gulp task name for js']); 

如果你想簡單地看各種文件的更改,然後使用水珠就像在你的任務*.css只是看文件。

+4

它不適合我。只有第一隻手錶能夠工作。第二個是不活躍的我猜。 – blablabla

+1

我不知道該說些什麼,但它適用於我。我用它所有的時間。 –

+1

我用gulp-watch和gulp-watch-sequence解決了這個問題。 – blablabla

8

一個問題是,加入gulp.filter任務以外時gulp.watch後失敗第一關。所以,如果你有這樣的事情:

var filter = gulpFilter(['fileToExclude.js']) 
gulp.task('newTask', function(){ ... 

然後,你需要將其更改爲:

gulp.task('newTask', function(){ 
    var filter = gulpFilter(['fileToExclude.js']) 

過濾器必須被包含在任務中的功能。希望能幫助別人。