2014-05-03 64 views
2

考慮以下兩個文件:如何將路徑前綴添加到傳遞給gulp.src的球體?

config.json

{ 
    "vendorFiles": [ 
    "vendor/angular/angular.js", 
    "vendor/angular-ui-router/release/angular-ui-router.js", 
    "vendor/angular-ui-utils/modules/utils.js" 
    ] 
} 

gulpfile.js

var gulp = require("gulp"), 
    concat = require("gulp-concat"), 
    config = require("./config"); 

gulp.task("build-vendor", function() { 
    gulp.src(config.vendorFiles) 
     .pipe(concat("vendor.js")) 
     .pipe(gulp.dest("build")); 
}); 

我怎樣才能消除,需要指定vendor/在config.json每個文件?該文件是由其他開發人員手動編輯的文件,因此我希望儘可能使其無障礙。

理想情況下,我想我的gulpfile.js採取加前綴(在某種程度上)的照顧,和我的config.json看起來像這樣:

{ 
    "vendorFiles": [ 
    "angular/angular.js", 
    "angular-ui-router/release/angular-ui-router.js", 
    "angular-ui-utils/modules/utils.js" 
    ] 
} 

回答

4

可能有一個更好的辦法Gulp具體解決方案,但這應該工作。

var gulp = require("gulp"), 
    concat = require("gulp-concat"), 
    config = require("./config"); 

gulp.task("build-vendor", function() { 
    gulp.src(config.vendorFiles.map(function(a) {return 'vendor/' + a})) 
     .pipe(concat("vendor.js")) 
     .pipe(gulp.dest("build")); 
}); 

演示http://jsfiddle.net/AK4tP/

0

你就不能這樣做

var gulp = require("gulp"), 
    concat = require("gulp-concat"), 
    config = require("./config"); 

gulp.task("build-vendor", function() { 
    gulp.src(config.vendorFiles, {root: 'vendor/'}) 
     .pipe(concat("vendor.js")) 
     .pipe(gulp.dest("build")); 
}); 

咕嘟咕嘟應該接受(SRC),雖然它不記錄root選項。

+0

這似乎只是在globes以'/'開頭的情況下。請參閱https://github.com/gulpjs/glob-stream/issues/42 –

相關問題