把手会编译一个空模板,而Gulp任务中不会运行任何数据

时间:2018-07-13 22:38:16

标签: gulp handlebars.js gulp-compile-handlebars

我正在运行一个简单的gulp任务,该任务应该以特定的语言呈现我的车把模板版本。语言数据存储在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数据的文件。 {{}}被删除,但是没有实际的数据,好像字符串对象为空,但事实并非如此,因为每当我用tap和console包装handlebars函数时,都将它们的值记录在那里。更加奇怪的是,如果我要传递对象文字,那么strings变量将正确呈现。

这是一个示例hbs模板和我的json文件

main.hbs

{{> header}}

<div>
  {{home.title}}
</div>

en.json

{
    "home" : {
    "title" : "hello world",
    "heading" : "1245"
    }
 }

main.html输出

<div>

</div>
<div>

</div>

1 个答案:

答案 0 :(得分:0)

我通过使用文档底部的另一个插件$ids = []; $numbers = []; $stmt = $mysqli->prepare(" SELECT DISTINCT `ID`,`number` FROM `table_1` "); $stmt->execute(); $stmt->bind_result($id, $number); $stmt->store_result(); while ($stmt->fetch()) { array_push($ids,$id); array_push($numbers,$number); } $stmt->close(); for ($i=0; $i < count($ids); $i++) { $stmt_2 = $mysqli->prepare(" UPDATE `table_2` SET `number` = ? where `id`= ? "); $stmt_2->bind_param("ss",$numbers[$i],$ids[$i]); $stmt_2->execute(); 参考来解决了这个问题。我用public static Matrix4f createTransformationMatrix(Vector3f translation, float rx, float ry, float rz, Vector3f scale) { Matrix4f matrix = new Matrix4f(); matrix.setIdentity(); Matrix4f.translate(translation, matrix, matrix); Matrix4f.rotate((float) Math.toRadians(ry), new Vector3f(0, 1, 0), matrix, matrix); Matrix4f.rotate((float) Math.toRadians(rz), new Vector3f(0, 0, 1), matrix, matrix); Matrix4f.rotate((float) Math.toRadians(rx), new Vector3f(1, 0, 0), matrix, matrix); Matrix4f.scale(scale, matrix, matrix); return matrix; } 对象替换了gulp-data,它现在可以工作了。我一直在努力尝试用简单的东西做些简单的事情,所以我的建议是远离。