我正在构建两个gulp流来压缩系统的两个区域的模板,然后我使用gulp-merge
和gulp-concat
将它们合并到一个文件中。
奇怪的是,切换两个流的顺序会使concat()
返回一个空的蒸汽(因此没有最终文件)。
为了让它更奇怪,在另一台开发者机器(两个窗口)上,相反的顺序就是工作单!!
var portalTemplates = gulp.src(input)
.pipe(templateCache('portal', { module: 'common.templates', standalone: true, root: templatePathPrefix + '/' + portalName + '/angular' }));
var sharedTemplates = gulp.src(sharedFiles.templates)
.pipe(templateCache('shared', { module: 'common.templates', root: templatePathPrefix + '/_shared/angular' }));
gulpMerge(sharedTemplates, portalTemplates)
.pipe(gulpTap(function (f) {
console.log(f.path, ' => ', f.contents.length);
}))
.pipe(concat('merged'))
.pipe(gulpTap(function (f) {
console.log(f.path, ' => ', f.contents.length);
}))
.pipe(gulp.dest(output.folder));
为了说明这个问题,我在concat之前和之后添加了console.log
个。
按此订单我
shared => <length>
按逆序(即gulpMerge(portalTemplates, sharedTemplates)
)
portal => <length>
shared => <length>
merged => <length>
非常感谢任何帮助!