我正在寻找一个工具来压缩我的JS文件。
我想要的不仅仅是简单地删除不必要的字符;我更喜欢能够减少长度的工具函数中的局部变量也是如此。
更好的是,该工具可以减少所有其他工具的长度诸如全局变量、函数名称等内容。这是为了防止代码在未经我们同意的情况下被网络查看者使用。
例如,该工具应将变量或函数名称从"some_variable"、"some_function"重命名为"sv"、"sf"等。然后重构所有相关引用。
我试图挖网,但找不到类似的东西。
我认为这个可以帮助你: http://www.minifyjavascript.com/
我过去用过它,它做得很好!
Google Closure Compiler 就是这样做的。它有各种设置,但即使是"简单优化"设置也会缩短变量名称和(在它知道函数永远不会在脚本外部调用的情况下)函数名称。当有节省时,它甚至会内联功能。
例如,给定此脚本:
jQuery(function($) {
var allDivsOnThePage = $("div"),
someParagraphsAsWell = $("p");
setColor(allDivsOnThePage, "blue");
setColor(someParagraphsAsWell, "green");
function setColor(elms, color) {
return elms.css("color", color);
}
});
使用闭包编译器进行简单的优化(并告诉它我们正在使用 jQuery)会产生:
jQuery(function(a){var b=a("div"),a=a("p");b.css("color","blue");a.css("color","green")});
请注意,它不仅缩短了标识符,而且在检测到可以的地方重用了一个标识符(在这种情况下,这并没有为我们节省任何东西,但在其他一些情况下它可以),并内联了setColor
函数,因为这导致了节省。
试试 YUI 压缩器:
http://developer.yahoo.com/yui/compressor/
对我来说,它似乎是目前最强大的之一。