【发布时间】:2014-07-09 05:23:53
【问题描述】:
我正在使用 Google 的闭包编译器优化(简单优化)来减小我的一些 JS 脚本文件的大小。虽然这很好用,但我在一些函数中遇到了 eval 语句的问题,编译器替换局部变量会造成严重破坏。我可以尝试重新编码有问题的函数来击败编译器,但这可能会很痛苦——而且从长远来看是危险的,因为我今天使用的技巧可能明天就行不通了。
如果我可以简单地标记我希望编译器保持不变的代码位会更好。目前,我正在考虑采用所有使用 eval 的函数,将它们放在一个单独的文件中,并在编译器输出的末尾标记该文件。但是,在我这样做之前,我认为值得在这里问一下——有没有办法告诉编译器跳过某些函数的优化。例如
// @compilation_level SIMPLE_OPTIMIZATIONS
function test(one,two)
{
}
function testTwo(alpha,beta)
{
}
// @Closure:Skip
function evalFunc(one,two)
{
//eval code here
}
//@Closure:EndSkip
最终结果 - Skip、EndSkip 部分之间的代码无需任何更改即可通过编译器。
我查看了文档,但没有找到任何可能做到这一点的东西。
【问题讨论】:
-
供参考:我也在github上问过这个问题:github.com/google/closure-compiler/issues/1282
标签: javascript google-closure-compiler