Domanda

Non tutte le soluzioni attualmente esistenti che possono minify un'intera directory del progetto? Ancora più importante, fare qualsiasi soluzioni esistono che possono accorciare classnames, id, e tenerli costante durante tutti i documenti?

Qualcosa che può trasformare questo:

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" ); 
});

a questo:

Index.HTML ---

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

Styles.css ---

.a{background-color:#000;}

Index.js ---

$(".a").click(function(){alert("fooBar");});
È stato utile?

Soluzione

Quello che stai cercando non è minifying, ma la compressione. Minimizzando per definizione solo rimuove gli spazi bianchi, dal momento che accorciando identificatori altera l'interfaccia, potenzialmente rompendo script esterni che dipendono da esso. Per questo motivo, Minimizzando è intrinsecamente 'sicuro' di compressione, anche se in un sistema chiuso (ad es. Un web app incapsulato), la compressione può essere una buona idea.

Per Javascript , la maggior parte delle persone usano il YUI Compressor o Dean Edwards' Packer .

Per CSS , ci sono un sacco di strumenti per 'ottimizzazione' gli stili, ma non so di alcun che accorciare i nomi delle classi pure. Le ragioni di questo potrebbero essere molteplici:

  1. Per comprimere un file CSS, lo script avrebbe bisogno di conoscere tutti i file HTML che includono esso, al fine di modificare i riferimenti class e id al loro interno. A seconda delle dimensioni e la struttura del tuo sito web, il suo potrebbe essere non banale.
  2. Dopo la compressione, semantica HTML diventa meno leggibile, come <span class="image_caption"> si trasforma in <span class="a12">, o peggio ancora, <p id="a12">.

Sarebbe sicuramente possibile fare qualcosa di simile a ciò che si descrive (e sto effettivamente lavorando su un CMS / framework personale che ), ma per essere mantenibile, sarebbe probabilmente di essere parte integrante di un CMS strettamente strutturato, comprimendo tutti i file 'dietro le quinte' ogni volta che un nuovo cambiamento viene pubblicato, pur mantenendo tutti i file originali in modo che il sito può essere mantenuto nel suo complesso.

Altri suggerimenti

http://www.w3compiler.com/ che fa la compressione e offuscamento

YUICompressor per minifying il mio file CSS e JS, e un programma chiamato < a href = "http://www.bestcode.com/html/findreplace.html" rel = "nofollow noreferrer"> sostituire per fare la sostituzione di stringhe personalizzate in html (rimozione di commenti, sostituendo lib jquery locale con Google api, ecc.)

Utilizzare un file batch per chiamare il programma su tutti i file con un'estensione specifica nella directory del progetto in questo modo:

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>"

e così via.

Finora, non sono stato in grado di trovare qualsiasi buon strumento per l'offuscamento. Ma solo questi due fanno il compito di minimizzazione e la compressione automatica e molto più facile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top