Script-Minimierung und kontinuierliche Integration mit MSBuild

In einem aktuellen Projekt, an dem ich in C # / ASP.NET gearbeitet habe, habe ich einige ziemlich komplizierte JavaScript-Dateien und einige raffinierte Stylesheets. Wenn diese Skriptressourcen größer werden, wird esist ratsam, die Ressourcen zu minimieren und halten Sie Ihre Webseiten natürlich so hell wie möglich. Ich kenne viele Entwickler, die ihre JavaScript-Ressourcen nach dem Debuggen manuell in Kompressoren einspeisen und dann ihre Anwendungen bereitstellen.

Wenn es um Quellcodeverwaltung und automatisierte Builds in der zufriedenstellenden Welt der kontinuierlichen Integration geht (danke CruiseControl.NET); Handkompression reicht einfach nicht. Die einzige Möglichkeit, die Quellcodeverwaltung aufrechtzuerhalten und komprimierte Ressourcen anzubieten, besteht darin, die JS / CSS-Quellcodeverwaltung und ihre minimierten Brüder in einer separaten Verzeichnisstruktur zu speichern. Registrieren Sie dann nur einen Ressourcensatz oder den anderen im CodeBehind. Wenn ein Entwickler jedoch eine Änderung an der JS / CSS-Quelle vornimmt und diese dann nicht erneut komprimiert und beide Versionen nicht überprüft, ist die Codezeile nicht mehr synchron. Ganz zu schweigen von Uneleganten.

Ich denke, es wäre schön, eine benutzerdefinierte ausführbare Datei (falls noch keine vorhanden ist) für den CC.NET-Taskblock zu schreiben, die alle JavaScript- und CSS-Ressourcen im Zielverzeichnis nach der Build-Aktion, jedoch vor der asp.net veröffentlichen zum Ziel. Auf diese Weise würden Entwickler nur an JS- und CSS-Quellen arbeiten und Benutzer würden nur die minimierten Ressourcen erhalten.

Gibt es eine Anwendung, die diese Aufgabe bereits ausführt, und wenn nicht, welche Art von Ressource (n) sollte ich auf dem Build-Server installieren, damit CC.NET ausgeführt wird?

(Das Nächste Frage Ich konnte hier zu diesem einen benötigten NAnt finden, was in meinem Fall keine Option ist.)

BEARBEITEN Dave Ward hat jetzt einen tollen Artikel über So minimieren Sie automatisch in Visual Studio auf seiner Seite.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage