考虑以下两个文件:
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"));
});
如何消除为config.json中的每个文件指定vendor/
的需要?该文件是由其他开发人员手动编辑的文件,因此我希望尽可能轻松地对其进行编辑。
理想情况下,我希望我的gulpfile.js负责添加该前缀(不知何故),并且我的config.json看起来像这样:
{
"vendorFiles": [
"angular/angular.js",
"angular-ui-router/release/angular-ui-router.js",
"angular-ui-utils/modules/utils.js"
]
}
答案 0 :(得分:5)
使用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/
答案 1 :(得分: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"));
});
Gulp应该接受src()中的root
选项,尽管没有记录。