2016-01-07 39 views
1

讓我們說,我有20個任務,所有抓取不同的文件類型和執行不同的事情。如何通過後綴/擴展名篩選所有吞嚥任務?

讓我們也說我有兩個環境,開發和生產。

基本上,我想有一個是這樣的目錄結構:

/app 
    /product 
     product.main.ctrl.js 
     product.add.development.ctrl.js 

在標準開發模式下運行,我希望應用程序編譯幾乎所有的JavaScript像通常那樣。

但是,如果我在生產模式下運行gulp,我想排除其中包含字development的所有文件。

我不知道是否有在一次延長的所有任務的方式,而不僅僅是手動添加的排斥到每一個任務:

// default task, I'd like to automatically extend this and exclude depending on evn. 
gulp.task('scripts:main', function() { 
    return gulp.src('/app/**/*.js', streamFunction); 
}); 
// a working example of what I'd like to do 
gulp.task('scripts:main', function() { 
    return gulp.src(['/app/**/*.js', '!/app/**/*.development.js'], streamFunction); 
}); 

所以上面有默認的情況下,我想這擴展和默認情況下,否則我排除開發文件,情景2是可以工作的,但是我不想把它添加到每一個任務中。

這可能嗎?

回答

0

通常你應該使用在所有任務

var config = { 
    jsProd : ['/app/**/*.js', '!/app/**/*.development.js'], 
    jsDev : ['/app/**/*.js'] 
} 

這使得路徑的更多可重複使用的使用配置設置...

,並在你的任務,只需要使用配置變量

gulp.task('scripts:main', function() { 
    return gulp.src(config.jsProd, streamFunction); 
}); 

這是根據約翰帕帕的風格指南