我正在运行一个简单的gulp任务,它应该用一种特定的语言呈现我的handlebars模板版本。语言数据存储在JSON文件中,我要求在gulp pipe任务中动态地将其存储在变量中,然后执行handlebars任务。
gulp.task('compilen', () => {
var strings;
return gulp.src('frontend/templates/*/*.hbs')
.pipe(through.obj(function(file,enc,cb){
var p = parsePath(file.relative);
strings = require('./frontend/templates/' + p.dirname+ '/locales/en.json');
console.log(strings);
cb(null,file);
}))
.pipe(handlebars(strings, options))
.pipe(rename(function(path){
path.basename += "-en";
path.extname = ".html";
}))
.pipe(gulp.dest('build'));
});
gulp
一切运行,它输出一个没有
strings
数据。{{}}被删除了,但是没有实际的数据,就好像strings对象是空的一样,但事实并非如此,因为每当我包装
handlebars
带抽头和控制台.log他们的价值观都在那里。。更奇怪的是
串
变量如果我要传递一个对象文本,则所有内容都会正确呈现。
下面是一个示例hbs模板和我的json文件
主.hbs
{{> header}}
<div>
{{home.title}}
</div>
英语.json
{
"home" : {
"title" : "hello world",
"heading" : "1245"
}
}
这个主.html输出
<div>
</div>
<div>
</div>