Corregir Errores de Compresión en Archivos JavaScript en Genexus

 


En algunas ocasiones pasa (generalmente en cambios de versión de GeneXus) que da un error al comprimir los archivos javascript. 

Si bien el mensaje es claro, es un warning y el proceso de build all termina con éxito. Por este motivo, a veces no se detecta el problema hasta que llega a producción y es mucho mas caro de corregir. 

Por eso, recomiendo mucho sobre todo en las primeras especificaciones/generaciones/compilaciones de una KB en una nueva instalación, prestar especial atención a la compresión de los archivos javascript. 

Un caso real

Por ejemplo, el caso de la imagen, había un webpanel programado sin pattern que utilizaba un User Control que se instalaba con un Pattern. 

Al cambiar la versión del Pattern, se actualizo el UC, cambiando de nombre y todos los objetos generados con el mismo pasaron a utilizar la nueva versión del UC, pero éste webpanel siguió usando el  UC viejo, que ya no estaba instalado. 

Al especificarlo, no daba ningún warning y compilaba sin errores.  Solo aparecia el warning al comprimir el javascritp. 

Compressing static files...
js\hwenviosdnacontingencia.js(121): Expected identifier: (
js\hwenviosdnacontingencia.js(121): Expected ';'
js\hwenviosdnacontingencia.js(121): Expected expression: )
warning: Some files could not be compressed.

Como identificar y resolver el problema

La forma de identificar el problema es mirar el output y revisar si todos los archivos pueden comprimirse sin errores. 
Los que no puedan ser comprimidos, conviene mirar el archivo javascript y buscar la linea con problemas, en el ejemplo de arriba es la 121. Generalmente con eso es suficiente para detectar el objeto y la causa del problema. 

En este caso, cambie el UC viejo por el nuevo en forma manual y con eso evite el problema. 

Conclusión:

Dedicarle unos minutos a revisar el output, puede ahorrar varios dolores de cabeza en produccion. 

Comentarios

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.