首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将选项传递给handlebars.precompile?

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

Stack Overflow用户
提问于 2014-05-22 07:24:54
回答 1查看 977关注 0票数 3

因此,我得到了运行良好的代码(我使用的是gulp,而不是对重要的内容咕哝):

代码语言:javascript
复制
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文件在好的文件夹中生成,但是我需要它们在没有-s参数的情况下生成。例如,当我运行handlebars path/to/my/hbs.handlebars -f path/to/my/out/folder.js -s (或--simple)时,生成的文件是相同的。但是我需要在没有-s参数的情况下运行这个命令,而且我找不到一种方法在我的gulpfile中传递这个参数。我尝试了很多东西,比如字符串、Json、数组,尝试使用-s falsesimple falseisSimple false (我在工具栏代码中找到了一些东西)。

所有这些都不起作用,我真的需要将-s参数传递给false。我想我需要做这样的事情:

代码语言:javascript
复制
[...]
return handlebars.precompile(contents.toString(), options);
[...]

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

PS :我使用这个,而不是喝把手,这样我就可以使用我想要使用的那个版本,而不是其他的了。

编辑

handlebars.js代码中搜索,我发现options是一个对象,但我找不到他所填充的内容,因为我不是一个好的javascript用户。

EN

回答 1

Stack Overflow用户

发布于 2014-11-06 17:04:52

在我看来,源中似乎没有这样的开关。取自命令行工具中使用的预编译器源

代码语言:javascript
复制
      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。这个装饰是由命令行工具添加的。还有第二个块,在脚本的下面有几行尾括号。最好将该源代码复制到代码中,或者访问gulp脚本中的.cli对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23800299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档