Jawr
De Dos Ideas.
Jawr es una solución de empaquetado para Javascript y CSS, que permite un rápido desarrollo de los recursos en módulos separados.
Mediante el uso de una biblioteca de etiquetas, Jawr permite el uso de las mismas páginas, sin cambios para el desarrollo y la producción. Jawr también minimiza y comprime los archivos, lo que resulta en una reducción de los tiempos de carga. Jawr se configura mediante un archivo de properties.
Características
Entre otras cosas, Jawr permite:
- crear "bundles" de varios archivos JavaScript o CSS. Es decir, agrupar muchos archivos en uno único.
- minificar archivos JavaScript o CSS, quitando espacios, comentarios y otras técnicas para minimizar el tamaño.
- comprimir los archivos usando gzip y enviar el resultado comprimido al navegador.
- leer automáticamente los archivos de un directorio (y subdirectorios), sin necesidad de especificar manualmente cada archivo.
- crear sprites de múltiples imágenes y compactarlas en una única imágen.
Ejemplo
A continuación se muestra la esencia de jawr
ejemplo de jawr.properties
# Common properties jawr.debug.on=false jawr.gzip.on=false jawr.gzip.ie6.on=false jawr.charset.name=UTF-8 # Javascript properties and mappings jawr.js.bundle.basedir=/js # All files within /js/lib will be together in a bundle. # The remaining scripts will be served sepparately. jawr.js.bundle.jquery.id=/jquery.js jawr.js.bundle.jquery.mappings=/js/jquery/** jawr.js.bundle.jquery-json.id=/jquery-json.js jawr.js.bundle.jquery-json.mappings=/js/jquery-json/** # The /bundles/lib.js bundle is global # (always imported before other scripts to pages using the taglib) jawr.js.bundle.lib.global=true # CSS properties and mappings jawr.css.bundle.basedir=/css # CSS files will be all bundled together automatically jawr.css.factory.use.singlebundle=true jawr.css.factory.singlebundle.bundlename=/default.css
web.xml
<servlet> <servlet-name>JavascriptServlet</servlet-name> <servlet-class>net.jawr.web.servlet.JawrServlet</servlet-class> <init-param> <param-name>configLocation</param-name> <param-value>/jawr.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>CSSServlet</servlet-name> <servlet-class>net.jawr.web.servlet.JawrServlet</servlet-class> <init-param> <param-name>configLocation</param-name> <param-value>/jawr.properties</param-value> </init-param> <init-param> <param-name>type</param-name> <param-value>css</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JavascriptServlet</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>CSSServlet</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping>
ejemplo de un jsp
<%@ taglib uri="http://jawr.net/tags" prefix="jwr"%> <%@ page contentType="text/html;charset=UTF-8"%> <html> <head> <jwr:script src="/jquery.js" /> <jwr:script src="/jquery-json.js" /> <jwr:style src="/default.css" /> </head> <body> <h 2>Hello World!</h 2> </body> </html>