2009-01-08 6 views
24

J'essaie de réduire la taille de quelques fichiers avec le compresseur YUI. Cependant, je semble avoir une erreur sur 2 lignes de code, ce qui empêche la compression. Le fichier .js pour jcarouselLite contient 1 erreur, et mon propre code contient l'autre.Problèmes de compression avec le fichier JQuery dans YUI Compressor

Je l'ai rétréci et dans les deux cas, il semble que la propriété float utilisée dans jQuery en soit la cause. La ligne est:

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) 

Un exemple de travail de l'erreur peut être vu en exécutant le jCarouselLite code à travers le compresseur YUI, mais essentiellement l'erreur renvoyée est id propriété non valide.

Est-ce que quelqu'un a eu des problèmes similaires avec le compresseur YUI?

+0

On dirait que vous devez exécuter Firefox et le débogueur Firebug JS, il devrait peut-être attraper des choses comme ça. – TravisO

Répondre

58

Ce n'est pas YUI en soi, c'est le jcarouselLite js. "float" est un mot réservé. Il doit être mis entre guillemets. EG:

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

Problème similaire avec votre propre code. YUI fait de son mieux pour compiler ce js mais refusera/vous avertira du code comme celui que vous avez trouvé. IMO fait la bonne chose.

+1

Cela nous a économisé beaucoup de temps - merci pour votre réponse! – DanP

+3

pour être précis, float n'est pas un mot réservé en javascript, mais YUI le signale parce qu'il s'agit d'un "futur mot-clé possible selon la spécification ECMAScript". – BishopZ

+0

Il m'a fallu un certain temps pour comprendre que 'var coordonnées = {long: 0, lat: 0};' était un problème (long mot réservé). Merci. –

0

dans mon cas quand YUI n'a pas pu compresser mes fichiers, il était parce que j'avais le « debugger » dans le fichier js. J'espère que cela épargnera à quelqu'un d'autre plusieurs heures de débogage!

2

Les autres réponses ici répondent au problème réel (mots réservés). Mais j'utilise YUI via BundleTransformer et il ne sort pas les numéros de ligne, donc j'étais un peu perdu quant à l'endroit où chercher.

Pour accélérer le processus de recherche des mots-clés, je suis allé à la recherche d'un autre outil.

This online YUI compressor m'a aidé à trouver le nom de propriété problématique.

Questions connexes