上一个问题询问如何消除死代码,但似乎没有回答中心问题: find dead JavaScript code?
我正在尝试缩小一组包含jquery和其他几个库的12个javascript文件。我相信大多数jquery都没用过。
当前的编译行是:
java -jar compiler.jar --language_in ECMASCRIPT5 --compilation_level ADVANCED_OPTIMIZATIONS --js *.js --js_output_file liq-min.js
它将代码的大小从240k减少到176k,但由于90k是jquery,它应该能够做得更好。
特别是对于谷歌闭包,有没有办法定义一组初始函数调用,并消除所有未调用的函数?显然,eval和其他字符串相关的问题意味着我们必须手动设置列表,但重要的是去除被调用的更大的库。
此外,closure会缩小局部变量名称,但不会缩小全局函数名称。 有没有办法做到这一点?如果有必要,我准备在最后添加一个字符串替换传递,但这并不理想。
换句话说,有没有办法让闭包转换:
Calendar.foo()
function foobar() {...}
到
C.f()
function f2() {...}
鉴于我正在将所有代码输入编译器,因此无需担心对这些函数的外部引用。换句话说,这不是一个库,它是一个应用程序,所需的唯一函数调用就是那些。
答案 0 :(得分:0)
哎呀,现在我找到了另一个答案: Use closure compiler to remove unused parts of jQuery
似乎没有编写jquery来处理高级优化。 我将快速浏览一下jquery,但它可能不值得继续工作。