我正在为我正在处理的项目使用高级模式下的Google Closure Compiler。这是一个非常激进的 JavaScript 编译器,可以相当多地优化你的代码。然而,为了做到这一点,它需要看到整个画面。也就是说,如果我给window.foo赋值,然后只从JS中访问编译器看不到的window.foo,它就不存在了,因为它会被改成window.f甚至被移除全部一起。
当涉及到 JS 寺庙时,这会使事情变得复杂。由于它们是在运行时从字符串中加载的,因此它们倾向于引用不再存在的变量。这可以通过对用于向模板提供值的对象使用带引号的赋值来稍微缓解。例如。templateContext['user'] 而不是 templateContext.user。但是,这不允许我做 templateContext.user.username 等等,所以它有点限制。
tl;dr:我需要一个 JavaScript 模板解决方案,可以将其预处理为纯 JavaScript,我可以将其包含在 .js 文件中。
这样的事情存在吗?