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

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

Я сузил его, и в обоих случаях похоже, что свойство 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?

Похоже, вам нужно запустить Firefox и отладчик Firebug JS, возможно, он должен улавливать такие вещи.

TravisO 08.01.2009 17:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
24
1
11 158
5

Ответы 5

Это не YUI как таковой, это jcarouselLite js. «поплавок» - зарезервированное слово. Его нужно заключить в кавычки. НАПРИМЕР:

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

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

Чтобы быть точным, float не является зарезервированным словом в javascript, но YUI отмечает его, потому что это «возможные будущие ключевые слова по спецификации ECMAScript».

BishopZ 09.07.2012 19:41

Мне потребовалось время, чтобы понять, что проблема с var coordinates = { long: 0, lat: 0 }; (длинное зарезервированное слово). Спасибо.

Pawel Krakowiak 28.05.2013 17:22

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

Вот список зарезервированных слов, который кажется довольно полным.

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

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

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

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

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

Я подготовил кастомную версию для обновления компрессора yui

https://github.com/MrD0llaro/yuicompressor а также https://github.com/MrD0llaro/yui-compressor-ant-task/ для использования в новом JQuery 3.5.1

Другие вопросы по теме