Frage

Was Sie verwenden, um JavaScript-Bibliotheken zu minimieren und zu komprimieren?

War es hilfreich?

Lösung

Ich benutze YUI Compressor . Scheint der Job gut gemacht werden!

Andere Tipps

ich verwendet habe, YUI Compressor für eine lange Zeit und haben damit keine Probleme gehabt mit Google Closure Compiler und hatte einen gewissen Erfolg damit haben, aber vor kurzem begonnen. Meine Eindrücke davon so weit:

  • Es übertrifft im Allgemeinen YUI Compressor in Bezug auf die Reduzierung der Dateigröße. Durch eine kleine Menge auf einfache Art und durch eine Menge auf dem erweiterten Modus.
  • Einfach-Modus ist bisher so zuverlässig wie YUI Compressor. Nichts, was ich habe fütterte es hat keine Probleme gezeigt.
  • Erweitert „Compilation“ Modus ist für einige Skripte groß, aber die dramatische Verringerung der Größe Ihres Skripts kommt mit Ihrem Code auf Kosten von viel einzumischen, die eine gute Chance, brechen sie steht. Es gibt Wege mit einigen dieser Probleme zu bewältigen und zu verstehen, was es tut einen langen Weg zur Vermeidung von Problemen gehen kann, aber ich mit diesem Modus generell vermeiden.

Ich habe mit der Verwendung von Google Closure Compiler in einfachen „Compilation“ Modus bewegt über, weil es leicht YUI Compressor im Allgemeinen übertrifft. Ich habe es deutlich weniger, als ich YUI Compressor habe, aber von dem, was ich bisher gesehen habe ich es empfehlen würde.

Eine andere, dass ich habe noch zu versuchen, aber klingt vielversprechend ist Mihai Bazon des UglifyJS .

Sie haben eine Herde von Möglichkeiten:

Aus meiner persönlichen Erfahrung, ich würde empfehlen, dass Sie das Dojo SDK verwenden, um einen benutzerdefinierten Build zu bauen, die Sie dann wiederum configure entweder ihren üblichen ShrinkSafe Compiler verwenden, oder Google Closure, , die sie nun auch unterstützen.

Im Hinblick auf die Kompression, ich denke, Google Closure das ist bisher die besten Ergebnisse für mich was, aber ich bin in der Regel zufrieden mit ShrinkSafe und es ist ein bisschen älter und robuster, während Closure Compiler ein bisschen ein neues Kind schaut auf dem Block (die Ihre Stakeholder auch nicht gern, zum Beispiel sein könnten).

Manche Leute schwören nur durch den YUI Compressor though. Ich persönlich kann nicht wirklich für sie bürgen.

Nun, wenn Sie war zu komprimieren Frage Bibliotheken und nicht nur Ihre eigenen JavaScript-Code, offensichtlich wird es wirklich mehr beteiligt, wie Sie für die meisten dieser Tools benötigt, um die Symbole zu exportieren, die nicht sein sollte umbenannt oder abgezogen. Die meisten anständigen Kompressoren Funktionen zu entfernen, die sie denken, sind ungenutzt - oft den Fall in einer Bibliothek, wenn sie nicht an ein Projekt gebunden, natürlich - und die Namen ändern, um sie kürzer zu machen und weniger Zeichen verwendet werden - auch ein Problem, wie Sie offensichtlich ein öffentliches wollen API nicht manipuliert werden.

Sie können anderen Threads zu diesem Thema finden auch Informationen und in den Support-Dokumentation Tool. Sie können auch einen Blick auf JSBuilder2 , eine Art Pendant zum Dojo des Build-Tool haben wollen ( so, mit ShrinkSafe oder Closure Compiler) für ExtJS (unter Verwendung der YUI Kompressor).

(Leider hat einen neue SO Benutzer zu sein, kann ich nicht mehr als einen Link hinzufügen, so dass ich nicht direkt mit den Tool verknüpfen.)

EDIT: in Bezug auf die in einigen Antworten Bedenken geäußert, dass die Kompression Fehler einführen könnte und dass es erleichtert das Debuggen, da der Code nicht verstümmelt wird: Ja, es ist ein berechtigtes Anliegen ist. Allerdings:

  • Sie werden eine sehr deutliche Verbesserung in Bezug auf Bandbreite, wenn man eine minifier verwenden, auch mit gzip-Komprimierung aktiviert (und Sie können den Kompressor gzip Kompression nutzen lernen, das Leben, indem sie leichter
  • Sie sollten nur den Code im Debug-und Produktionsmodus Geschmack ist das Verhalten identisch zu gewährleisten. Ich meine, es Teil Ihrer Arbeit ist so gut ...
  • einige dieser Kompressoren gibt es schon eine Weile und wird nicht wirklich Fehler in Ihren Code einzuführen. Sie sind wirklich nur neu zu organisieren Dinge und Strings ersetzt, wirklich.
  • einig Kompressoren (zum Beispiel des Dojo Build-System) kommt mit Optionen, die Sie sowohl eine komprimierten und eine unkomprimierte Ausgabe zu erzeugen, zu ermöglichen, so dass man dann verschiedene Modi für die Fehlersuche und Produktion aktivieren kann, Abfrageparameter zum Beispiel verwendet wird.

Ich weiß nicht JavaScript minimieren überhaupt. Gzip-Kompression ist gut genug für mich und hat den zusätzlichen Vorteil, die Fehlermeldungen noch nützlich sein wird,

Ich benutze auch YUI Compressor. Ich habe eine Ameise Aufgabe wie diese, die ich in meinen Projekten verwenden:

<!--
YUI Compressor tasks 
http://www.julienlecomte.net/yuicompressor/README
-->
<property name="yuicompressor.jar"
           value="C:/devlibs/yuicompressor-2.2.4/build/yuicompressor-2.2.4.jar"/>

<target name="js.compress">
    <!-- Create min directory under js direcrtory if it doesnt exist -->
    <mkdir dir="${js-directory}/min" />

    <apply verbose="true" executable="java" parallel="false" failonerror="true">
        <fileset dir="${js-directory}" includes="*.js"/>
        <arg line="-jar"/>
        <arg path="${yuicompressor.jar}"/>
        <srcfile/>
        <arg line="-o"/>
        <mapper type="glob" from="*.js" to="${js-directory}/min/*-min.js"/>
        <targetfile/>
    </apply>
</target>

Dean Edwards Packer erreicht ein paar ziemlich gute Kompressionsraten. Es verfügt über Kommandozeilen-Implementierungen, die ermöglicht es, in einem kontinuierlichen Integrationsprozess verwendet werden.

UglifyJS ist eine neue.

  

UglifyJS komprimiert besser als YUI   Kompressor und nur etwa auf dem Niveau   die Google Closure Compiler. Zum   beispielsweise die komprimierte Version   jQuery aus dem Google-Closure   Compiler ist nur 403 Bytes kleiner   als die Version von UglifyJS produziert   - beeindruckend! UglifyJS ist auch die schnellste noch lange laufen, schlagen   Schließung von mehr als 6 Sekunden!

     

Zusätzlich kann der Code erzeugt durch   UglifyJS ist sicherer als der Code, der   Verschluß erzeugt. Zum Beispiel,   Schließung nicht weiß, wie man mit umgehen   eval oder mit {} - es meldet sich nur einen Fehler   und weiterhin Variablen umbenennen   sowieso. Dies ist offensichtlich, führt zu   broken-Code. UglifyJS hat nicht   dieses Problem.

Weitere Informationen finden Sie hier: http://badassjs.com/post / 971960912 / uglifyjs-a-schnell-new-Javascript-Kompressor-für-Knoten-js

Google Schließung Tools

Sie können die minimierte Version des regulären Quellcode für das Debuggen in Firebug Karte mit dem Add-on.

Ich habe vor YUI Kompressor versucht, aber es gibt mir Fehlermeldung.

Ich schlage vor, mit JSMin Ihrem Javascript minify:

http://www.crockford.com/javascript/jsmin.html

Hier ist eine Lösung von Microsoft, die Sie in Visual Studio integrieren können die Dateien automatisch minify, wenn Sie Ihr Projekt.

So installieren Sie:

Laden Sie die msi von: http://aspnet.codeplex.com/releases/view/40584

Sie müssen möglicherweise Ihren Computer nach seiner Fertig neu zu starten.

Verwendung:

Bearbeiten Sie Ihre CSPROJ Datei und schließt die folgenden am Ende der Datei (aber vor dem </Project> Tag):

<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />

<Target Name="AfterBuild">
    <ItemGroup>
        <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js" />
        <CSS Include="**\*.css" Exclude="**\*.min.css" />
    </ItemGroup>
    <AjaxMin 
    JsSourceFiles="@(JS)"
    JsSourceExtensionPattern="\.js$"
    JsTargetExtension=".min.js"
    CssSourceFiles="@(CSS)"
    CssSourceExtensionPattern="\.css$"
    CssTargetExtension=".min.css"/>
</Target>

Wenn Sie nun Ihr Projekt erstellen, alle CSS und JS-Dateien, die in .min.js nicht zu Ende, wird .min.css (Siehe „Ausschließen“ -Attribut andere Dateien, die nicht minimierte wird) minimierte werden.

http://code.google.com/p/jsmin-php/

Der gute alte Doug Crockford :-) Das Schöne daran ist, dass mit Cache-Steuerung Sie somelovely automatisierte Kompression bekommen kann nur dann, wenn es erforderlich ist. Oder in einem meiner Projekte, die ich gerade Ausgabe die komprimierten / gzip-Dateien und löschen Sie sie, wenn ich eine Änderung vornehmen. Für eine Entwicklungsumgebung, ich nicht nennen nur‘die Verkleinerungs Skript.

Ich verwende eine einfache (3-4 Linie) Wrapper-Skript JavaScript :: Minifier :: XS .

Hier ist ein Artikel, der beschrieb, wie zum Minimieren von Dateien während Build YUI Compressor zu verwenden: Komprimieren von JS-Dateien als Teil Ihres Build-Prozesses

Ich benutze Perl JavaScript :: Minifier. Es funktioniert ziemlich gut und man kann zum Beispiel ersetzen einige Sätze Perl verwendet wird.

http://caja.appspot.com/tools/index macht alle drei von HTML / CSS / JS.

https://jawr.dev.java.net/ ist ausgezeichnet für minification und Versionierung

Es ist ein sehr guter Online-Kompressor:

http://javascriptcompressor.com/

Sie können auch Variablen schrumpfen, wenn Sie noch mehr compresed wollen.

Hoffe, es hilft

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