是否可以手动配置使用 NPM 包编译 Handlebars 模板时生成的名称/索引?

我在不同的上下文(Rails、NodeJS、PHP)中使用过 Handlebars,我注意到在某些情况下,生成的模板名称是文件的基本名称,而在其他情况下,名称是文件的完整路径。

例如,运行 handlebars app/templates/*.hbs -n HandlebarsTemplates -e hbs 将产生如下名称:

HandlebarsTemplates["my_template"]

但在其他地方,我也看到了以下内容:
HandlebarsTemplates["app/templates/my_template"]

我找不到可以传递给控制它的 handlebars 脚本的选项。

这是可配置的行为吗?还是纯 JS 编译(调用 Handlebars.compile(source) )与使用 CLI 工具编译之间存在差异?

知道这些命名风格中的哪一种最终更接近推荐的使用 Handlebars 的最佳实践也会很有趣。

最佳答案

这在文档中并不明显,但更仔细地查看 the implementation ,我发现可以通过传入一个空的 --root 参数来切换模板路径/名称。

默认情况下,脚本调用 basename() ,它编译为 my_template :

 handlebars app/templates/my_template.hbs -e hbs

而传入空的 --root 参数将避免转换路径,因此以下命令编译为 app/templates/my_template :
handlebars app/templates/my_template.hbs -e hbs -r

关于javascript - 配置预编译的 Handlebars 模板的生成名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18909803/

10-16 21:04