2009-05-16 8 views
1

habe ich versucht, die Online-JS Minifier, aber es schneidet bedingte Kommentare wie:Minifier, der bedingte Kommentare enthält?

var u = navigator.userAgent;var e=/*@[email protected]*/false; 

          BECOMES 

var u=navigator.userAgent;var e=false; 

Diese den Betrieb des Codes beeinträchtigen würde, so anstatt manuell die gezupft Kommentare manuell hinzufügen, ich bin auf der Suche nach einem minifier das bewahrt diese und solche Kommentare auf intelligente Weise.

Antwort

1

YUICompressor tut angeblich das Notwendige. Hier ist ein Auszug aus einem Blog:

...
Aber ärgern Sie sich nicht, es ist nicht so schlimm wie Sie denken. Leider entfernt JSMin Kommentare zur bedingten Kompilierung, aber ich glaube, dass dies darauf zurückzuführen ist, dass es seit einiger Zeit nicht mehr aktualisiert wurde und nicht mit den modernen Web-Entwicklungspraktiken Schritt halten kann.

Mit anderen Tools wie YUI Kompressor oder Packer funktioniert in der Tat gut mit bedingten Kompilierung. ...

Sie können den gesamten Beitrag bei http://robertnyman.com/2008/05/26/conditional-compilation-in-javascript/

+1

Beachten Sie jedoch, dass, obwohl der YUI-Komprimierer bedingte Kommentare enthält, das Vorhandensein dieser Kommentare das Komprimierungsniveau automatisch reduziert, sodass Variablennamen nicht länger verkürzt/verschleiert werden. Es muss dies tun, weil sich die Kommentare selbst auf Variablen im Umfang beziehen können, ähnlich wie eval. Http://www.julienlecomte.net/blog/2007/09/22/ –

+0

Packer http://dea.edwards.name/packer/ funktioniert gut für mich, und es hat auch variable Namen Kürzung (optional). –

0

Es gibt auch a .NET port of YUI Compressor lesen, die Ihnen ermöglicht: -

  • intergrate die Verkleinerungs/Datei kombiniert in Visual Studio Post-Build-Ereignisse
  • intergrieren in einen TFS-Build (einschließlich CI)
  • wenn Sie nur die DLLs in Ihrem eigenen Code verwenden möchten (z. B. on the fly minification).

denn dies ist ein Port der (original) YUI Compressor Java-Version ist, die Vinnie und Crescentfresh oben erwähnt, soll es Ihnen die gleichen Ergebnisse liefern, aber alle in der .NET-Umgebung - keine Notwendigkeit für Java.

HTH.

Verwandte Themen