Wer mit umfangreichen JavaScript-Dateien hantiert, wie es beispielsweise bei Angular Projekten der Fall ist, braucht ein kleines Helferlein, welches sich um lästige Details automatisiert kümmert. Der ebenfalls in JavaScript implementierte Task-Runner Grunt ist ein solches praktisches Werkzeug. Grunt gehört somit in die Kategorie der Build Tools und übernimmt monotone, wiederkehrende Aufgaben. Ob JavaScript Minimierung, SCSS-Processing, automatisierte Unit-Tests oder das Management von externen Abhängigkeiten: All das gehört zum Aufgabengebiet von Grunt.

Damit die Ergebnisse der Automatisierung immer die gleiche Ausgabe bei gleicher Eingabe produzieren und somit wiederholbar bleiben, sollte man auf spezialisierte Werkzeuge zurückgreifen. Build Tools erfüllen diese Anforderung, ganz egal, auf welchem System sie ausgeführt werden. Bei selbiger Eingabe wird immer die gleiche Ausgabe erzeugt. Die Plattformunabhängigkeit ist ein wichtiges Merkmal von Buildwerkzeugen und auch der wichtigste Grund, wieso einfache Shell- oder Batch-Skripte nicht genügen. Denn die Aufgaben, die mit Tools wie Grunt automatisiert werden, sollen nicht nur auf dem Rechner des Entwicklers laufen, sondern auch auf CI-/CD-Servern.
Wer für sein JavaScript Projekt den Task-Runner Grunt einsetzt, nutzt nicht nur ein mächtiges Werkzeug, sondern erleichtert sich merklich den Entwickleralltag. Dank der Automatisierung werden Fehler, die durch monotone, wiederkehrende Aufgaben entstehen, vermieden. Zusätzlich wird das Team von langweiligen Tätigkeiten befreit. Es ergibt sich somit mehr Raum, sich auf das eigentliche Entwicklungsgeschäft, die Implementierung neuer Funktionalität, zu konzentrieren. Um eine bessere Vorstellung davon zu erhalten, wie Grunt die einzelnen Programmierer im Team entlasten kann, habe ich ein kleines Szenario beschrieben, das so oder ähnlich den meisten sicherlich bekannt ist.
Ein typisches Einsatzszenario von Grunt findet man in der Komprimierung von JavaScript Dateien. Eine möglichst starke Komprimierung dieser oft umfangreichen Ressourcen verbessert die Ladezeiten von Webanwendungen signifikant. Wenn die komprimierte Variante zum Einsatz kommt, erfährt der Endnutzer eine merkliche Verbesserung. Aber auch das Kompilieren von SCSS-Dateien zu vom Browser verarbeitbarem CSS mit entsprechender Komprimierung gehört zum Alltag eines FrontEnd Entwicklers. Moderne Benutzerschnittstellen beinhalten allerdings eine Vielzahl an unterschiedlichen Bibliotheken von Fremdanbietern. Diese Abhängigkeiten gilt es, regelmäßig auf neuere Versionen zu aktualisieren und auf mögliche Sicherheitsrisiken hin zu untersuchen. Daher ist ein leistungsfähiges Dependency Management in modernen Softwareentwicklungsprojekten kaum noch wegzudenken. Bevor ich hier zu ausführlich werde, belassen wir es erst einmal bei den erwähnten Einsatzszenarien des JavaScript Task-Runners Grunt und schauen uns an, wie man diesen in das eigene Projekt integriert.
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.