YUI Compressor中JQuery文件的压缩问题。

问题描述 投票:24回答:5

我正试图用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压缩器时遇到过类似的问题吗?

javascript jquery compression yui
5个回答
59
投票

不是YUI本身的问题,是jcarouselLite的js。"float "是一个保留字。需要加引号。eg:

li.css({overflow: "hidden", "float": o.vertical ? "none" : "left"});

EG: Similar issue with your own code. YUI正在尽力编译那个js,但会拒绝警告你类似你发现的代码。IMO它在做正确的事情。


9
投票

我已经用 "类 "这个词碰到过几次这个问题。如果你在服务器端使用YUI,它应该会吐出它所抱怨的行号。

这里有一个保留字的列表,似乎很全面。

http:/mattsnider.comlanguagesjavascriptreserved-words-in-javascript。


3
投票

这里的其他答案回答了实际问题(保留字)。但我是通过 BundleTransformer 而且它并没有输出行号,所以我有点迷茫,不知道该去哪里找。

为了加快寻找关键词的进程,我又去找了一个工具。

这个在线YUI压缩器 帮助我找到了有问题的属性名。


0
投票

在我的例子中,当YUI无法压缩我的文件时,是因为我在js文件中使用了 "调试器"。希望这能帮别人省去几个小时的调试时间!


0
投票

我已经准备了一个自定义版本,用于更新yui压缩器。

https:/github.comMrD0llaroyuicompressor。https:/github.comMrD0llaroyui-compressor-ant-task。在新的Jquery 3.5.1上使用。

© www.soinside.com 2019 - 2024. All rights reserved.