预编译为纯 JavaScript 的 JavaScript 模板语言

标签 javascript templates google-closure-compiler

我正在使用 Google Closure Compileradvanced mode对于我正在从事的项目。这是一个非常积极的 JavaScript 编译器,可以大大优化您的代码。然而,为了做到这一点,它需要看到整个画面。也就是说,如果我给window.foo赋值,然后只从编译器看不到的JS访问window.foo,它就不存在了,因为它已经被改成了window.f甚至被移除了一起。

当涉及到 JS 寺庙时,这会使事情变得复杂。由于它们是在运行时从字符串中加载的,因此它们倾向于引用不再存在的变量。通过对用于向模板提供值的对象使用带引号的赋值,可以稍微缓解这种情况。例如。 templateContext['user'] 而不是 templateContext.user。但是,这不允许我做 templateContext.user.username 等等,所以它有点限制。

tl;dr:我需要一个 JavaScript 模板解决方案,它可以被预处理成我可以包含在 .js 文件中的纯 JavaScript。

有这样的东西吗?

最佳答案

老实说,我不确定我是怎么错过这个的:Google Closure Templates .

关于预编译为纯 JavaScript 的 JavaScript 模板语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4442378/

相关文章:

javascript - 从 Webix 中结果对象的属性加载数据

c++ - 使用类型名递归实例化模板?

templates - 使用 Jinja2,是否可以禁用标签和/或过滤器?

configuration - 在高级模式下编译时对象被删除或部分折叠 - Google Closure Compiler

javascript - 在闭包高级编译中获取对象的属性名称?

javascript - 为什么这会导致 Google 的 Closure 编译器出现 "invalid syntax"错误?

javascript - ToggleShow 元素只在这个特定的div中点击显示

javascript - Chrome 扩展程序将所有链接替换为稍微修改过的版本

c++ - 参数列表中的可选 "name"?

javascript - 使用 webaudio 生成静态波形