Frage

YUI Compressor war der Konsens beste Werkzeug zur Minimierung, aber Closure scheint, wie es besser sein könnte.

War es hilfreich?

Lösung

„Unabhängig davon, welche Ihnen am besten für Sie“ Ich denke, ist die allgemeine Antwort im Moment - YUI länger verfügbar ist, so wird zweifellos das eine sein, die zur Zeit der Konsens hat als das beste Werkzeug zu sein. Während Closure ist neu für uns - so es nicht die Fülle von Erfahrungen mit Schließung ist, da es mit YUI ist. Daher glaube ich nicht, dass Sie ein überzeugendes realen Argumente, warum Closure auf Basis von Menschen Erfahrungen mit ihm finden würden, nur weil es neu ist.

Das ist nicht zu sagen, dass Sie nicht Closure verwenden sollten .... nur meine Runde über Art zu sagen, ich glaube nicht, dass es eine Antwort auf diesen verfügbar, bis eine Reihe von Menschen, die 2 verwendet hat, und verglichen sie.

Edit: Es gibt ein paar frühen Vergleiche, sagen Closure eine Verbesserung nicht geben: http://blog.feedly.com/2009/ 6.11 / google-Verschluss-vs-yui-min /
http://news.ycombinator.com/item?id=924426

Weitere Edit: Worth Auge Problem Liste für Closure halten: http://code.google.com / p / Verschluss-Compiler / issues / Liste

Andere Tipps

Von den Vergleichen ich gesehen habe, scheint Schließung der klare Gewinner im Hinblick auf die Minimierung der Dateigröße zu sein. Dieser Artikel basiert auf drei populäre JS-Bibliotheken (jQuery, Prototype, Mootools) Kompression zwischen YUI Compressor und Closure Compiler vergleichen: http: // www .bloggingdeveloper.com / post / Closure-Compiler-vs-YUI-Kompressor-Vergleich-the-Javascript-Compression-Tools.aspx

Closure kommt in jedem Test vor, besonders in seinem erweiterten Modus, in dem es "durch die Bereitstellung fast 60% Kompression Codegröße etwa 20-25% mehr als YUI Compressor minimiert."

Verschluss kann im einfachen Modus oder im erweiterten Modus verwendet werden. Einfach-Modus ist ziemlich sicher für die meisten JavaScript-Code, wie es umbenennt nur lokale Variablen in Funktionen weitere Komprimierung zu erhalten.

Advanced-Modus ist viel aggressiver. Es wird umbenennen Schlüssel in Objektliterale und Inline-Funktion aufruft, wenn sie feststellen kann, dass sie einfache Werte ohne Nebenwirkungen zurück.

Zum Beispiel:

function Foo()
{
  return "hello";
}

alert(Foo());

wird übersetzt:

alert("hello");

Und dieser Code:

var o = {First: "Mike", Last: "Koss"};
alert(o);

wird übersetzt:

alert({a:"Mike",b:"Koss"});

Sie können von wechselnden Schlüsselwerten in Objektliterale den erweiterten Modus verhindern, indem die Namen wie folgt zitiert:

{'First': "Mike", 'Last': "Koss"}

Sie können diese und andere Beispiele bei Googles interaktiven Closure Compiler-Website ausprobieren.

Sieht aus wie jQuery 1.5 gerade nach UglifyJS :

  

Zusätzlich mit diesem Schalter wir haben   bewegt UglifyJS aus der Verwendung   Google Closure Compiler. Wir haben gesehen   einige feste Dateigröße Verbesserungen   während des Spiels an, so sind wir sehr zufrieden   mit dem Schalter.

Ich denke, es auf Ihrem Code abhängt. Wenn Sie Ihren eigenen Code kompilieren, dann denke ich, es ist es wert, den Code zu patchen, so dass es mit funktioniert Closure Compiler (einige Dinge vielleicht ein wenig umständlich zu Beginn scheint). Ich glaube, Closure Compiler in Kürze die erste Wahl für solche Jobs sein und es wird Ihnen auch ein wenig Code aufzuräumen machen und pflegen einheitlichen Stil (natürlich auf Ihre Vorlieben abhängt, könnte man einige hassen Teile, das tue ich: P)

.

Wenn Sie auf anderen Bibliotheken dann meiner Meinung nach hängen sollten Sie ein wenig warten, bis sie freigeben Closure Compiler kompatible Versionen. Es sollte nicht viel Zeit für die meisten populären Bibliotheken nehmen gibt. Und vielleicht können Sie Fixes für diese „nicht so aktiv“ Bibliotheken bieten, die Sie selbst verwenden.

Ich spreche von Erweitert Compilation Modus hier, die Einfache Compilation Modus, wie einige darauf hingewiesen haben, ist ziemlich sicher zu verwenden.

Und hier ist eine andere Meinung - Google Closure? Ich bin nicht Beeindruckt . Es ist vielleicht ein wenig zu hart, aber schön zu lesen. Ich denke, nur die Zeit wird zeigen, welche besser =)

ist

Ab Oktober 2012, sieht aus wie YUI Kompressor jetzt veraltet ist, oder zumindest nicht mehr in YUI verwendet werden soll: http://www.yuiblog.com/blog/2012/10/16/state-of-yui-compressor/

Sie können einige Tests machen hier, und sehen, was in jedem Browser besser ist: http://jsperf.com/closure-vs-yui

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