2010-12-14 43 views
2

對於我正在開發的項目,我在advanced mode中使用Google Closure Compiler。這是一個非常積極的JavaScript編譯器,可以相當優化您的代碼。然而,爲了做到這一點,它需要看到整個圖景。也就是說,如果我將一些東西分配給window.foo,然後只從JS訪問window.foo,編譯器無法看到它,它將不存在,因爲它已經被更改爲window.f或者甚至被刪除全部一起。預編譯爲純JavaScript的JavaScript模板語言

當JS鏡頭來臨時,這會讓事情變得複雜。由於它們是在運行時從字符串中加載的,因此它們傾向於引用不再存在的變量。通過爲用於向模板提供值的對象使用引用賦值,可以稍微緩解這種情況。例如。 templateContext ['user']而不是templateContext.user。但是,這不允許我執行templateContext.user.username等等,所以它有些限制。

tl; dr:我需要一個JavaScript模板解決方案,可以將其預處理爲純JavaScript,並將其包含在.js文件中。

這樣的事情是否存在?

+0

你提到谷歌Closure模板,我已經用它旁邊的其他谷歌Closure工具,是高興的。此外,與Google Closure完全無關,但在任何情況下,您可以通過字符串訪問屬性,如下所示:templateContext ['user'] ['username'] – 2010-12-14 20:33:49

+0

好點。我知道,但我一定忘記了。閉包編譯器讓我避免以這種方式訪問​​對象,除非它是絕對必要的。 – defrex 2010-12-14 20:40:04

回答