我正试图用YUI压缩器对一些文件进行压缩。然而,我似乎在2行代码上得到一个错误,这阻止了压缩。 的.js文件 jcarouselLite 包含了一个错误,而我自己的代码则包含了另一个错误。
我已经缩小了范围,在这两个场合,它看起来像jQuery中使用的float属性导致了这个问题。这一行是。
li.css({overflow: "hidden", float: o.vertical ? "none" : "left"}); (jcarousellite)
$("#now-playing .js-kit-rating div:first").css({width: "80px", float: "right"}).addClass("clearing"); (own code)
一个错误的工作实例可以通过执行 jCarouselLite代码 通过YUI压缩器,但基本上返回的错误是无效的属性id。
有人在使用YUI压缩器时遇到过类似的问题吗?
不是YUI本身的问题,是jcarouselLite的js。"float "是一个保留字。需要加引号。eg:
li.css({overflow: "hidden", "float": o.vertical ? "none" : "left"});
EG: Similar issue with your own code. YUI正在尽力编译那个js,但会拒绝警告你类似你发现的代码。IMO它在做正确的事情。
我已经用 "类 "这个词碰到过几次这个问题。如果你在服务器端使用YUI,它应该会吐出它所抱怨的行号。
这里有一个保留字的列表,似乎很全面。
http:/mattsnider.comlanguagesjavascriptreserved-words-in-javascript。
这里的其他答案回答了实际问题(保留字)。但我是通过 BundleTransformer 而且它并没有输出行号,所以我有点迷茫,不知道该去哪里找。
为了加快寻找关键词的进程,我又去找了一个工具。
这个在线YUI压缩器 帮助我找到了有问题的属性名。
在我的例子中,当YUI无法压缩我的文件时,是因为我在js文件中使用了 "调试器"。希望这能帮别人省去几个小时的调试时间!
我已经准备了一个自定义版本,用于更新yui压缩器。
https:/github.comMrD0llaroyuicompressor。和 https:/github.comMrD0llaroyui-compressor-ant-task。在新的Jquery 3.5.1上使用。