我有一个gulp任务,我想在多组文件上运行。我的问题与描述here非常相似,只不过我在一个额外的配置中定义了我的文件集。
到目前为止,我提出的内容如下所示:
config.json
{
"files": {
"mainScript": [
"mainFileA.js",
"mainFileB.js"
],
"extraAdminScript": [
"extraFileA.js",
"extraFileB.js"
]
}
}
gulpfile.js
var config = require ('./config.json');
...
gulp.task('scripts', function() {
var features = [],
dest = (argv.production ? config.basePath.compile : config.basePath.build) + '/scripts/';
for(var feature in config.files) {
if(config.files.hasOwnProperty(feature)) {
features.push(gulp.src(config.files[feature])
.pipe(plumper({
errorHandler: onError
}))
.pipe(jshint(config.jshintOptions))
.pipe(jshint.reporter('jshint-stylish'))
.pipe(sourcemaps.init())
.pipe(concat(feature + '.js'))
.pipe(gulpif(argv.production, uglify()))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(dest))
);
}
}
return mergeStream(features);
});
我的问题是这似乎不起作用。流不是组合或至少没有真正发生。不久之前,其他人遇到了类似的问题,请参阅here,但即使应该修复它也不适合我。
顺便说一句,我也测试了以这种方式合并流:
return es.merge(features)
return es.merge.apply(null, features)
如果我只是在一组文件上运行任务就可以了。
动机
我想要这样做的原因是,在某些时候,当所有文件的数量太大时,将所有脚本连接并缩小为一个最终文件是没有意义的。此外,有时不需要一次加载所有内容。例如,每个访问者都不需要加载与管理界面相关的所有脚本。