在注册预编译部分时保留编译运行时
作者: Schommer79创建于 2025年9月4日更新于 2025年9月5日
我正在尝试编写模板模块,其中一个 JavaScript 模块导出了一个模板函数。理想情况下,每个模板模块都应该是独立的,以便既不会影响其他 handlebars 运行时(`handlebars.noConflict().create()`),也不会受到其他 handlebars 运行时的影响。不同的模板可以依赖同名的不同版本的辅助函数,而不会相互干扰。每个模板模块还应处理注册所需的任何辅助函数/局部函数。对于简单的模板,可以不修改 handlebars 目前的工作方式即可完成此操作。但是,如果模板需要一个局部函数,而该局部函数又需要其他资源,例如辅助函数,则它就无法正常工作。我将该局部模板编译在自己的运行时中,并将所需的辅助函数已注册到该运行时。但是,当该局部模板被注册到第二个运行时中时,在该运行时中创建的模板尝试使用该局部函数时就会出错,因为缺少了辅助函数。
内容来源: handlebars-lang/handlebars.js