我正在运行一个简单的 gulp 任务,该任务应该以特定语言呈现我的车把模板版本。语言数据存储在 JSON 文件中,我需要在 gulp 管道任务中动态地将其存储在变量中,然后执行把手任务。
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
数据的文件。{{ }} 已删除,但没有实际数据,就好像字符串对象为空一样,但情况并非如此,因为每当我handlebars
用 tap 和 console.log 包装函数时,它们都在那里.. 更奇怪的是是不是strings
如果我要传递对象文字而不是变量,一切都会正确呈现。
这是一个示例 hbs 模板和我的 json 文件
主文件
{{> header}}
<div>
{{home.title}}
</div>
en.json
{
"home" : {
"title" : "hello world",
"heading" : "1245"
}
}
main.html 输出
<div>
</div>
<div>
</div>