gpt4 book ai didi

handlebars.js - 如何将选项传递给 handlebars.precompile?

转载 作者:行者123 更新时间:2023-12-02 04:54:57 34 4
gpt4 key购买 nike

所以我的代码运行良好(我使用的是 gulp 而不是 grunt 重要的是):

var handlebars = require('handlebars'),
rename = require('gulp-rename'),
map = require('vinyl-map');

gulp.task('test', function(){
return gulp.src(config.path.template+"/*.handlebars")
.pipe(map(function(contents) {
return handlebars.precompile(contents.toString());
}))

.pipe(rename({ extname: '.js' }))
.pipe(gulp.dest(config.path.template+"/test"))
});

一切运行完美,.js 文件在 good 文件夹中生成,但我需要它们在没有 -s 参数的情况下生成。例如,当我运行 handlebars path/to/my/hbs.handlebars -f path/to/my/out/folder.js -s (或 --simple),生成的文件是一样的。但是我需要这个命令在没有 -s 参数的情况下运行,而且我找不到在我的 gulpfile 中传递这个参数的方法。我尝试了很多东西,在字符串中,在 Json 中,在数组中,尝试使用 -s false,使用 simple false,使用 isSimple false (我在 handlebars 代码中找到的东西)。

这些都不起作用,我真的需要将 -s 参数传递给 false。我假设我需要做类似的事情:

[...]
return handlebars.precompile(contents.toString(), options);
[...]

但我找不到使用这些选项的正确语法或方法。这就是我的问题。

PS:我使用这个而不是 gulp-handlebars,这样我就可以使用我想使用的 Handlebars 版本,而不是另一个版本。

编辑

handlebars.js代码中搜索,只发现options是一个对象,但是我不是一个好人,所以找不到他填充的是什么JavaScript 用户。

最佳答案

在我看来,源代码中没有这样的开关。取自precompiler source从命令行工具中使用:

      if (opts.simple) {
output.push(Handlebars.precompile(data, options) + '\n');
} else if (opts.partial) {
if (opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) {
output.push('return ');
}
output.push('Handlebars.partials[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n');
} else {
if (opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) {
output.push('return ');
}
output.push('templates[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n');
}

opts是你传入的,另一个变量options被传给了precompile。装饰是由命令行工具添加的。在脚本的下方几行处有第二个带有右括号的 block 。您最好将该源代码复制到您的代码中,或者访问您的 gulp 脚本中的 .cli 对象。

关于handlebars.js - 如何将选项传递给 handlebars.precompile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23800299/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com