Frage

Stellen Sie keine Lösungen, die derzeit existieren, die ein ganzes Projektverzeichnis minify? Noch wichtiger ist, existieren keine Lösungen, die Klassennamen, IDs verkürzen können, und sie in allen Dokumenten konsistent halten?

etwas, das diese drehen kann:

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

In diesem:

Index.html ---

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

Styles.css ---

.a{background-color:#000;}

Index.js ---

$(".a").click(function(){alert("fooBar");});
War es hilfreich?

Lösung

Was Sie suchen ist nicht minifying, aber Kompression. Minifying definitions nur entfernt Leerzeichen, da Identifikatoren Verkürzung der Schnittstelle ändert, möglicherweise externe Skripte zu brechen, die davon abhängen. Aus diesem Grunde ist Verkleinerungs von Natur aus ‚sicherer‘ als Kompression, obwohl in einem geschlossenen System (dh. Eine gekapselte Webanwendung), Komprimierung eine gute Idee sein kann.

Für Javascript , die meisten Leute benutzen die YUI Compressor oder Dean Edwards Packer .

Für CSS , gibt es viele Tools für ‚Optimierung‘ die Stile, aber ich weiß nicht jeder, den Klassennamen als auch verkürzen. Die Gründe dafür könnte sein, mehrere:

  1. eine CSS-Datei zu komprimieren, das Skript müßte alle HTML-Dateien wissen, dass es enthält, um die Klassen- und id Referenzen innerhalb sie zu ändern. Je nach Ihrer Größe auf der Website und Struktur, konnte sein nicht-trivial.
  2. Nach der Kompression semantischer HTML wird weniger lesbar, als <span class="image_caption"> in <span class="a12"> dreht, oder schlimmer noch, <p id="a12">.

Es wäre auf jeden Fall möglich sein, etwas wie zu tun, was Sie beschreiben (und ich arbeite tatsächlich auf einer persönlichen CMS / Framework, das wird ), aber für sie wartbar zu sein, es wäre wahrscheinlich ein integrierter Teil eines eng strukturierten CMS, komprimiert alle Dateien ‚hinter den Kulissen‘ zu sein, wenn eine neue Änderung veröffentlicht wird, während alle ursprünglichen Dateien zu halten, so dass die Website als Ganzes beibehalten werden.

Andere Tipps

Ich benutze http://www.w3compiler.com/ , die tut Kompression und Verschleierung

Ich benutze YUICompressor für meine CSS und JS-Dateien und ein Programm namens minifying < a href = "http://www.bestcode.com/html/findreplace.html" rel = "nofollow noreferrer"> ersetzen individuellen Austausch von Strings in hTML (Entfernen von Kommentaren zu tun, mit google Local jquery lib ersetzt api usw.)

eine Batch-Datei Verwenden Sie das Programm auf alle Dateien mit einer bestimmten Erweiterung in Ihrem Projektverzeichnis wie so zu nennen:

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

und so weiter.

Bisher habe ich nicht in der Lage gewesen, ein gutes Werkzeug für die Verschleierung zu finden. Aber diese beiden allein machen die Aufgabe, minification und Kompression automatisiert und wesentlich einfacher.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top