【问题标题】:Configuring the generated name of precompiled Handlebars templates配置预编译的 Handlebars 模板的生成名称
【发布时间】:2025-12-01 10:10:02
【问题描述】:

是否可以手动配置使用 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 的最佳实践也会很有趣。

【问题讨论】:

    标签: javascript npm handlebars.js


    【解决方案1】:

    这在文档中并不明显,但更仔细地查看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
    

    【讨论】:

      最近更新 更多