Saltar al contenido

Categoría: Planetas

Automatiza tareas de desarrollo web con Guard

Hace tiempo en una charla de Paul Irish, ví un programa llamado Live-reload para recargar automáticamente una página en el navegador cada vez que realicemos un cambio en ella. Pero nunca había podido configurarla en Linux, luego hace unos días en una entrevista de Addi Osmani vi un comentario que me hizo volver a tratar de instalarla, su comentario fue: «Ya en el 2013 nadie debería perder tiempo en recargar manualmente el navegador».

Así que me puse instalar el programa y descubrí Guard, una aplicación hecha en Ruby para chequear las modificaciones realizadas a archivos y realizar acciones en base a ello. Esto permite por ejemplo, que al realizar algún cambio en un archivo escrito con SASS o SCSS genere el CSS automáticamente, si modificas un archivo JS de desarrollo genere el archivo final ya comprimido, generar el archivo JS desde CoffeScript, entre otros. De esta manera automatiza gran cantidad de tareas que usualmente harías manualmente a través de comandos del Editor/IDE.

Instalación

Aunque existen instaladores para MacOS y Windows los desarrolladores prefieren instalarlo a través de Ruby GEMs, el proceso es sencillo y se aplica para todos los sistemas operativos que soporten Ruby, para ello en la consola debes ejecutar los comandos:

gem install bundle #facilita el proceso
gem install guard #el programa que estamos comentado
gem install guard-livereload #extensión para actualizar el navegador
gem install guard-sass #para pre-procesado de CSS

Configuración

Luego te diriges a la raíz del proyecto que estás elaborando, allí ejecutas el comando:’

bundle init

Nota: Si el comando falla es porque no tienes el comando gem en tu variable $PATH
Esto creará un archivo llamado Gemfile que contiene toda la información de los gems utilizados en el proyecto y las dependencias de lo mismos. Una vez creado con el comando mencionado, lo abres y agregas el siguiente contenido:

gem 'guard'
gem 'guard-livereload'
gem 'guard-sass', :require => false

Luego debes crear un archivo con el nombre Guardfile en la raíz del proyecto, en él se definirán las reglas que deben ocurrir para realizar las acciones. El siguiente ejemplo está diseñado para ser usado en un proyecto PHP con el framework Yii:

# Módulo para que al modificar un archivo SASS genere el CSS ya comprimido
guard 'sass',
:input => 'css',
:output => 'css',
:style => :compressed

#reglas para la recarga del navegador
guard 'livereload' do

#actualiza el navegador al ocurrir cambios en las vistas, modelos y controladores.
watch(%r{protected/views/.+\.php})
watch(%r{protected/views/.+/.+\.php})
watch(%r{protected/views/.+/.+/.+\.php})
watch(%r{protected/models/(.+)/(.+)\.php$})
watch(%r{protected/controllers/(.+)\.php$})

#Comprime los archivos de Javascript utilizando un script llamado compressJS ubicado en la carpeta js/
watch(%r{js/.+\.original\.js}) {`js/compressJs`}

#Una vez generado los archivos JS finales (ya comprimidos) recarga el navegador
watch(%r{js/.+\.js})

#Recarga el navegador cuando se modifica un archivo CSS
watch(%r{css/.+\.css})
end

La sintaxis es watch(%r{EXPRESION_REGULAR_DE_ARCHIVOS}) {comando a ejecutar}, con esto puedes jugar a detectar cambios en algunos archivos y realizar a través de una secuencia de comandos, tareas respecto a ese archivo modificado. También noten como por ejemplo al comprimir el archivo JS no se recarga el navegador, sino en otra regla cuando se modifica un archivo JS, es decir, algunas cosas deben hacerse a través de la definición de varias reglas.

Uso del programa

Para ejecutarlo debes iniciar guard con el comando:

bundle exec guard

A partir de ahora guard chequeará los cambios en los archivos y ejecutará las acciones configuradas. Para refrescar el navegador automáticamente, es necesario instalar LiveReload para Firefox o Chrome . Una vez instalada, ve a la pestaña donde estas visualizando el proyecto, presionas el botón de LiveReload y debería conectarse sin problemas a guard.

Complemento de LiveReload
Botón para conectarse con Guard LiveReload

Para probarlo, edita un archivo de vista  y debería actualizarse la página sin problemas. También al editar un archivo SASS (o SCSS) debería generar el archivo CSS y a su vez recargar la página para ver la nueva apariencia, al editar los archivos de Javascript deberían comprimirse y cualquier otra acción que hayas configurado.

Ahora depende de ustedes que utilicen estas herramientas todos los días, pues mejorarán su trabajo al automatizar ciertas tareas y enfocarse en otras mas importantes. Si alguien conoce otra utilidad para Guard, no duden en dejar un comentario.

1 comentario

Evento de Android en el Instituto Universitario de Tecnología «Antonio Jose de Sucre»

Este próximo jueves 23 y viernes 24 de Mayo del 2013 desde las 9:00am, se realizará una serie de conferencias y charlas sobre Android en el Instituto Universitario de Tecnología «Antonio Jose de Sucre», la asistencia es libre y gratuita. Si les interesa conocer mas sobre este sistema operativo líder de los dispositivos móviles no faltes.

Por mi parte, estaré dando una ponencia de las versiones de Android modificadas (ROMS personalizadas), la programación del evento pueden verla en el afiche oficial.

Se habla Android
Afiche del evento «Se habla Android»

Esperamos su asistencia y avisen sobre el evento a compañeros de la región.

Deja un comentario

2do Congreso Binacional de Tecnologías Libres

El próximo 17 y 18 de mayo en la instalaciones de la UNEFA Táchira se celebrará el 2do Congreso Binacional de Tecnologías Libres. En el podremos ver temas de todo tipo relacionados con Software Libre, yo estaré representando a Mozilla Venezuela con un taller de FirefoxOS a las 9:15am.

Les recomiendo asistir por la cantidad y calidad de temas en el evento, además en esta clase de evento se suele aprender sobre temas no dictados en el pensum de las Universidade, están actualizados y se puede conocer gente del Software Libre para futuros proyectos.

En el afiche anexo pueden ver los temas, ponentes, hora y precio del evento.

2do Congreso Binacional de Tecnologías Libres
Afiche del evento

Así que ¡Asiste!

Deja un comentario

Hangout improvisado sobre Software Libre para el FLISOL 2013

Este sábado 27 de abril por problemas logísticos no se pudo organizar el FLISOL en la ciudad de San Cristóbal, sin embargo, Jose Luis Rivas se le ocurrió la idea de realizar una videoconferencia con varios miembros de TALUG (Tachira’s Linux User Group) y hablar sobre temas relacionados con software libre, la charla fue improvisada y sin guión planificado (solo sabíamos que íbamos a hablar de Software Libre) pero me parece que quedó bien para la poca planificación.

Les recomiendo ver o escuchar este vídeo pues tiene temas interesantes, diversas opiniones y nunca está demás conocer un poco mas del tema.

Probablemente sigamos creando vídeos de este tipo acerca de temas técnicos y participación libre. Así que pendientes por este medio si anunciamos uno para que participen.

2 comentarios