2009-01-31 13 views
7

Usando yuicompressor me sale el siguiente error de mi código javascript:Javascript yuicompressor error

 
    [ERROR] 270:201:missing name after . operator 
    [ERROR] 292:6:missing ; before statement 

Aquí está el código Javascript en las siguientes líneas:

Línea 270:

new _ow.getScript(_ow.wwwurl+'/widget/save?title='+encodeURIComponent(this.obj.title.value)+'&url='+encodeURIComponent(this.obj.url.value)+'&tags='+this.obj.tags.value+'&private='+this.obj.private.checked+'&c='+this.obj.notes.value+'&service='+services+'&token='+(_ow.token ? encodeURIComponent(_ow.token): ''), function(data) { 

Línea 292 :

}); 

No puedo entender cuál es el problema, ya que este código JavaScript funciona bien en todos los navegadores.


EDITAR: Me divide la línea en varias líneas y descubrió que el "nombre desaparecidas después del operador." Es generada por este código:

this.obj.private.checked 

Es privada una palabra clave que hace que el compresor YUI se vuelva loco?

Respuesta

0

Puede hacer su propia vida mucho más fácil con solo dividirla en varias líneas. Usted está comprimiendo todos modos, así que no es como se va a hacer una diferencia en el tamaño final ...

3

En primer lugar, me gustaría cambiar el formato del código para que sea más legible:

new _ow.getScript(_ow.wwwurl 
    + '/widget/save?title=' 
    + encodeURIComponent(this.obj.title.value) 
    + '&url=' 
    + encodeURIComponent(this.obj.url.value) 
    + '&tags=' 
    + this.obj.tags.value 
    + '&private=' 
    + this.obj.private.checked 
    + '&c=' 
    + this.obj.notes.value 
    + '&service=' 
    + services 
    + '&token=' 
    + (_ow.token 
     ? encodeURIComponent(_ow.token) 
     : ''), 
    function(data) { 
    }); 

Entonces , la línea # reportada por el compresor debería ayudarlo a profundizar en cuál es el problema.

0

Recuerde utilizar la opción --type js ex.

yuicompressor --type js -o comressed.js filetocompress.js 
2

se puede descargar e instalar Apache Ant, descargar el código fuente Yui, editar el código fuente (en la carpeta src, en el organigrama y las subcarpetas com) para eliminar todas las referencias a la palabra clave bloqueando su progreso (que va bastante rápido, edité alrededor de 3 a 4 archivos, creo, tuve que ejecutar dos veces porque la primera vez obtuvo un error de referencia, pero todo lo que necesité fue borrar otra línea refiriéndome a la palabra clave) y una vez que compila con éxito, usted tiene una nueva .jar y puedes usar esto para compilar tus js problemáticos. Hizo esto con yuicompressor2-4.7 y la palabra clave "import" (usada ampliamente en el código de extensión de mozilla)

Cuestiones relacionadas