我正在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等上,可能不是这样。我希望改变这个
答案 0 :(得分:7)
它正在破碎,因为你正试图缩小无效的javascript。功能中不能包含点。
我认为你正试图命名空间。如果你是,你最好做一些像:
var myVar = {
foo: function () { /* do something */ }
}
myVar.foo();