Komprimierungsprobleme mit JQuery-Datei in YUI Compressor

Lesezeit: 2 Minuten

Benutzer-Avatar
Benutzer47378

Ich versuche, ein paar Dateien mit dem YUI-Kompressor zu verkleinern. Ich scheine jedoch einen Fehler in 2 Codezeilen zu erhalten, der die Komprimierung verhindert. Die .js-Datei für jcarouselLite enthält 1 Fehler und mein eigener Code enthält den anderen.

Ich habe es eingegrenzt und in beiden Fällen sieht es so aus, als ob die in jQuery verwendete Float-Eigenschaft dies verursacht. Die Zeile lautet:

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)

Ein funktionierendes Beispiel für den Fehler kann durch Ausführen von angezeigt werden jCarouselLite-Code durch den YUI-Kompressor, aber im Grunde ist der zurückgegebene Fehler eine ungültige Eigenschafts-ID.

Hatte jemand ähnliche Probleme mit dem YUI-Kompressor?

  • Klingt so, als müssten Sie Firefox und den Firebug JS-Debugger ausführen, er sollte vielleicht solche Dinge abfangen.

    – TravisO

    8. Januar 2009 um 14:58 Uhr

Benutzer-Avatar
Halbmond frisch

Es ist nicht YUI per se, es ist das jcarouselLite js. “float” ist ein reserviertes Wort. Es muss in Anführungszeichen gesetzt werden. Z.B:

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

Ähnliches Problem mit Ihrem eigenen Code. YUI versucht sein Bestes, um dieses js zu kompilieren, wird Sie jedoch vor Code wie dem, den Sie gefunden haben, ablehnen/warnen. IMO tut es das Richtige.

  • Um genau zu sein, Float ist kein reserviertes Wort in Javascript, aber YUI kennzeichnet es, weil es ein “mögliches zukünftiges Schlüsselwort gemäß der ECMAScript-Spezifikation” ist.

    – BishopZ

    9. Juli 2012 um 15:41 Uhr

  • Ich brauchte eine Weile, um das herauszufinden var coordinates = { long: 0, lat: 0 }; war ein Problem (langes reserviertes Wort). Vielen Dank.

    – Pawel Krakowiak

    28. Mai 2013 um 13:22 Uhr

Ich habe dieses Problem ein paar Mal mit dem Wort “Klasse” getroffen. Wenn Sie YUI auf der Serverseite verwenden, sollte es die Zeilennummer ausspucken, über die es sich beschwert.

Hier ist eine Liste mit reservierten Wörtern, die ziemlich umfassend erscheint.

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

Die anderen Antworten hier beantworten das eigentliche Problem (reservierte Wörter). Aber ich benutze YUI via BundleTransformer und es gibt keine Zeilennummern aus, also war ich ein wenig verloren, wo ich suchen sollte.

Um das Finden der Keywords zu beschleunigen, suchte ich nach einem anderen Tool.

Dieser Online-YUI-Kompressor hat mir geholfen, den problematischen Eigenschaftsnamen zu finden.

In meinem Fall, als YUI meine Dateien nicht komprimieren konnte, lag es daran, dass ich den ‘Debugger’ in der js-Datei hatte. Ich hoffe, das erspart jemand anderem mehrere Stunden Debugging!

Ich habe eine benutzerdefinierte Version für das Update von Yui Compressor vorbereitet

https://github.com/MrD0llaro/yuicompressor
und
https://github.com/MrD0llaro/yui-compressor-ant-task/
für die Verwendung auf dem neuen Jquery 3.5.1

1086750cookie-checkKomprimierungsprobleme mit JQuery-Datei in YUI Compressor

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy