Question

Est-ce que des solutions existent actuellement qui peuvent rapetisser tout un répertoire de projet? Plus important encore, faire des solutions existent qui peuvent réduire classnames, id, et les garder cohérente dans tous les documents?

Quelque chose qui peut se transformer ceci:

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

Dans ceci:

index.html ---

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

Styles.css ---

.a{background-color:#000;}

index.js ---

$(".a").click(function(){alert("fooBar");});
Était-ce utile?

La solution

Qu'est-ce que vous cherchez est pas minifying, mais la compression. Minifying par définition uniquement supprime les espaces, car le raccourcissement des identifiants modifie l'interface, ce qui peut casser des scripts externes qui en dépendent. Pour cette raison, est en soi le format réduit « plus sûr » que la compression, bien que dans un système fermé (ie. Une application web encapsulé), la compression peut être une bonne idée.

Pour Javascript , la plupart des gens utilisent le YUI Compresseur ou Dean Edwards Packer .

CSS , il y a beaucoup d'outils pour « optimiser » les styles, mais je ne connais pas de qui raccourcissent les noms de classe aussi bien. Les raisons de cela pourrait être plusieurs:

  1. Pour compresser un fichier CSS, le script aurait besoin de connaître tous les fichiers HTML qui l'incluent, afin de changer les références de classe et id en eux. En fonction de la taille de votre site Web et de la structure, son pourrait être non négligeable.
  2. Après compression, HTML sémantique devient moins lisible, comme <span class="image_caption"> se transforme en <span class="a12">, ou pire encore, <p id="a12">.

Il serait certainement possible de faire quelque chose comme ce que vous décrivez (et je travaille actuellement sur un CMS / cadre personnel que ), mais pour qu'il soit maintenable, il aurait probablement être une partie intégrante d'un CMS très structuré, comprimant tous les fichiers « dans les coulisses » à chaque fois qu'un nouveau changement est publié, tout en gardant tous les fichiers d'origine afin que le site puisse être maintenue dans son ensemble.

Autres conseils

J'utilise http://www.w3compiler.com/ qui fait la compression et obfuscation

J'utilise YUICompressor pour minifying mes fichiers CSS et js, et un programme appelé < a href = "http://www.bestcode.com/html/findreplace.html" rel = "nofollow noreferrer"> pour faire remplacer le remplacement personnalisé de chaînes en html (suppression des commentaires, remplaçant lib jquery locale avec Google api etc.)

Utilisez un fichier batch pour appeler le programme sur tous les fichiers avec une extension spécifique dans votre répertoire de projet comme ceci:

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

et ainsi de suite.

Jusqu'à présent, je ne l'ai pas été en mesure de trouver un bon outil pour faux-fuyants. Mais ces deux seuls rendent la tâche de minification et la compression automatique et beaucoup plus facile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top