我试图创建一个将两个Handlebars进程应用到src的Gulp任务。
第一个进程使用外部JSON数据源并填充模板。然后,对于一个额外的进程,我想用模板中的另一个表达式解析我的gulpfile中计算的值。
然后重命名生成的模板并输出到目标。
每个流程都独立工作,但当我尝试将它们合并为一个任务时,只运行第一个Handlebars流程。
{{1}}
我是否误解了Gulp的管道流是如何工作的?我有想法先合并两个JSON源,然后用Handlebars解析,但我不确定上述语境中的语法。
答案 0 :(得分:3)
您的代码无效的原因是因为在第一个handlebars()
之后您的流中不再有Handlebars模板。所有{{placeholder}}
表达式都已被替换,除了HTML之外什么都没有。所以第二个handlebars()
实际上不能再做任何事了。
我有想法先合并两个JSON源,然后用Handlebars解析
这是正确的做法。
假设您的第一个数据源是文件data.json
,第二个数据源是在Gulpfile中计算的。您可以使用merge
包合并两者:
var merge = require('merge');
gulp.task('default', function() {
var dataSrc1 = require('./data.json');
var dataSrc2 = {
count: 40 + 2
};
var dataSrc = merge.recursive(true, dataSrc1, dataSrc2);
return gulp.src('handlebars/pagetemplate.hbs')
.pipe(handlebars(dataSrc, options))
.pipe(rename('page.html'))
.pipe(gulp.dest('outputfolder/'));
});
答案 1 :(得分:0)
您可能需要合并两个管道 / 流:
page.driver.browser.manage.all_cookies
复制