Подтвердить что ты не робот

Проблемы сжатия с файлом JQuery в компрессоре YUI

Я пытаюсь минимизировать несколько файлов с помощью компрессора YUI. Однако, похоже, я получаю сообщение об ошибке на двух строках кода, что предотвращает сжатие. Файл .js для jcarouselLite содержит 1 ошибку, а мой собственный код содержит другой.

Я сузил его и в обоих случаях похоже, что свойство float, используемое в jQuery, вызывает это. Линия:

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, но в основном полученная ошибка является недопустимым идентификатором свойства,

У кого-то были проблемы с компрессором YUI?

4b9b3361

Ответ 1

Это не YUI per se, это jcarouselLite js. "float" - это зарезервированное слово. Его нужно вводить в кавычки. EG:

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

Аналогичная проблема с вашим собственным кодом. YUI изо всех сил пытается скомпилировать этот js, но будет отказывать/предупреждать вас о коде, подобном тому, который вы нашли. ИМО делает правильные вещи.

Ответ 2

Я несколько раз сталкивался с этой проблемой со словом "класс". Если вы используете YUI на стороне сервера, он должен выплюнуть номер строки, на который он жалуется.

Здесь список зарезервированных слов, который выглядит довольно всеобъемлющим.

http://mattsnider.com/languages/javascript/reserved-words-in-javascript/

Ответ 3

Другие ответы здесь отвечают на фактическую проблему (зарезервированные слова). Но я использую YUI через BundleTransformer, и он не выводит номера строк, поэтому я немного потерял информацию о том, где искать.

Чтобы ускорить процесс поиска ключевых слов, я пошел искать другой инструмент.

Этот онлайн-компрессор YUI помог мне найти проблемное имя свойства.

Ответ 4

в моем случае, когда YUI не смог сжать мои файлы, это было потому, что у меня был "отладчик" в файле js. Надеюсь, это поможет кому-то еще несколько часов отладки!