我在 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 等上,情况可能并非如此。我希望得到这个改变