如何缩小包含用'分隔的函数名称的JavaScript文件。'?

时间:2012-06-04 18:23:10

标签: javascript minify

我正在Windows操作系统上运行100个Javascript文件,并且几乎有一半遇到了问题。事实证明,minfiying压缩器无法正确缩小具有点所示功能的js文件。对于YUI压缩器,它会在发生这种情况时删除文件的内容,对于Ajaxminifier,它只是忽略点并在它之前取出函数名。

有问题的功能示例:

function window.onload() {}

Error Message: :missing ( before function parameters

使用YUI压缩器作为MSBuild任务和命令行都会产生相同的结果。

命令行示例:

java -jar yuicompressor.jar --type js --charset utf-8 -o D:\foo.js D:\foo-min.js

使用Ajax Minifier示例:

命令行:

AjaxMin.exe -o D:\foo.js D:\foo-min.js

但是,一种解决方案是重写功能,缩小过程效果很好 例如:

window.onload = function() {}

但是现在这不是我们的选择。 有谁知道这个问题并且能够提供解决方案吗?


感谢。是的,我确实继承了这些文件,我还没有确定它是用这种方式编写的。我不相信有任何处理器将其转换为正确的JS ..我知道Web应用程序只能在IE上运行,这可能就是为什么这样做的原因。在firefox等上,可能不是这样。我希望改变这个

1 个答案:

答案 0 :(得分:7)

它正在破碎,因为你正试图缩小无效的javascript。功能中不能包含点。

我认为你正试图命名空间。如果你是,你最好做一些像:

var myVar = {
    foo: function () { /* do something */ }
}

myVar.foo();