Pregunta

¿Existen soluciones actualmente que puede minify un directorio completo del proyecto? Más importante, ¿existen soluciones que pueden acortar nombres de las clases, ID, y los mantienen constante a través de todos los documentos?

Algo que puede convertir esto:

Index.HTML ---

<div class="fooBar">
  <!-- Code -->
</div>

Styles.css ---

.fooBar { 
  // Comments and Messages
  background-color: #000000; 
}

index.js ---

$(".fooBar").click( function () { 
  /* More Comments */
  alert( "fooBar" ); 
});

En este:

Index.HTML ---

<div class="a"></div>

Styles.css ---

.a{background-color:#000;}

index.js ---

$(".a").click(function(){alert("fooBar");});
¿Fue útil?

Solución

Lo que usted está buscando no está minifying, pero la compresión. Si se minimizan, por definición, solamente elimina los espacios en blanco, ya que el acortamiento identificadores altera la interfaz, lo que podría romper scripts externos que dependen de ella. Por esta razón, minifying es inherentemente 'más seguro' que la compresión, aunque en un sistema cerrado (es decir. Una aplicación web encapsulado), la compresión puede ser una buena idea.

Para Javascript , la mayoría de la gente utiliza el compresor YUI o Dean Edwards Packer .

Para CSS , hay un montón de herramientas para la 'optimización' los estilos, pero no sé de ninguno que acortar los nombres de clases también. Las razones de esto pueden ser varias:

  1. Para comprimir un archivo CSS, el guión tendría que conocer todos los archivos HTML que lo incluyen, con el fin de cambiar las referencias de clase y de identificación dentro de ellos. Dependiendo del tamaño y la estructura de su sitio web, su podría ser no trivial.
  2. Después de la compresión, HTML semántico se vuelve menos legible, como <span class="image_caption"> convierte en <span class="a12">, o peor aún, <p id="a12">.

Sin duda sería posible hacer algo parecido a lo que usted describe (y yo en realidad estoy trabajando en un personal de CMS / marco que ), pero para que sea fácil de mantener, probablemente se habría siendo una parte integral de un CMS fuertemente estructurada, comprimir todos los archivos 'entre bastidores' cada vez que se publica un nuevo cambio, manteniendo todos los archivos originales por lo que el sitio se puede mantener en su conjunto.

Otros consejos

http://www.w3compiler.com/ el que hace la compresión y la ofuscación

yuicompressor para minifying mi css y js, y un programa llamado < a href = "http://www.bestcode.com/html/findreplace.html" rel = "nofollow noreferrer"> sustituya para hacer personalizada de reemplazo de cadenas en hTML (eliminación de los comentarios, en sustitución de lib jQuery local con google api, etc.)

Utilice un archivo por lotes para llamar al programa en todos los archivos con una extensión específica en el directorio del proyecto, así:

java -jar yuicompressor-2.4.2.jar -o temp\css\one-compressed.css temp\css\one.css
replace -quotes \q -srcdir temp\ -fname "*.php" -find "<script type=\qtext/javascript\q src=\qjs/jquery.js\q></script>" -replace "<script src=\qhttp://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js\q type=\qtext/javascript\q></script>"

y así sucesivamente.

Hasta ahora, no he podido encontrar ninguna buena herramienta para la ofuscación. Pero estos dos solos hacen la tarea de minimización y la compresión automática y mucho más fácil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top