我想压缩我的2000多行javascript并测试了http://dean.edwards.name/packer/和http://closure-compiler.appspot.com/home。
但在这两种情况下,压缩脚本都会给我带来错误。
错误的一个示例是jQuery(document).Da is not a function
。
为什么我的脚本在优化后不起作用? 我该怎么做才能优化/压缩我的脚本?
答案 0 :(得分:6)
确保每个JavaScript文件的开头都有分号。奇怪,我知道,但这就是原因:
您可能在一个文件中有这样的内容:
function someFunc() {
...
}
在下一个文件中跟这样的东西(这是多少jQuery插件看起来):
(function($) {
...
})(jQuery);
压缩成这个:
function someFunc(){ }( function($){...} )(jQuery);
本质上以someFunc
为基础调用function($){...}
作为参数。然后,它将接受返回的任何内容,并假设它是一个函数,并以jQuery
作为参数调用它。
这就是为什么大多数jQuery插件都以;(function($){
开头。
在每个文件的开头添加分号(或结尾,但使其保持一致)将使您的脚本看起来像:
;function someFunc(){ }; (function($){...})(jQuery);
这样,您的脚本将被解释为预期。
答案 1 :(得分:3)
您可以尝试使用在线YUI Compressor。这是谷歌的第一个结果:http://www.refresh-sf.com/yui/
答案 2 :(得分:0)
(function($) {
$.fn.defaultInputs = function(settings) { ...
我已经简化为
jQuery.fn.defaultInputs = function(settings) { ...