JavaScript-Linting-Tools im Vergleich
Kommentare

Linting-Tools sind ein nützliches Werkzeug beim Schreiben von JavaScript-Code, um Fehler im Code zu vermeiden und sicherzustellen, dass das Projekt dem Coding-Standard entspricht.

Bei der Fülle der verschiedenen Linting-Tools auf dem Markt fällt die Entscheidung, welches das richtige Tool ist, allerdings oft nicht leicht. Jani Hartikainen hat darum vier der beliebtesten Linter – JSLint, JSHint, JSCS und ESLint – miteinander verglichen.

Vor- und Nachteile der verschiedenen Linting-Tools

Alle vier Tools, die Jani Hartikainen für seinen Vergleich heranzieht, sind sich in ihrer grundsätzlichen Funktionalität ähnlich. Sie nutzen ein Regelset zum Analysieren und Berichten von Problemen in den JavaScript-Dateien und unterstützen zudem Kommentare für die Konfiguration.

Ebenso können alle Tools über npm installiert und entweder direkt von der Kommandozeile, als Grunt-Plug-in oder in einem Editor genutzt werden. Dabei kommt die Wahl des richtigen Tools allerdings auf den Einsatzbereich an, denn jeder Linter bringt unterschiedliche Vor- und Nachteile mit sich.

JSLint Bereits seit 2002 gibt es das von Douglas Crockford entwickelte Linting-Tool, mit dem die „guten Teile“ von JavaScript durchgesetzt werden sollten. Das Problem dabei ist allerdings, dass es keine Konfigurationsdatei sowie nur wenige Konfigurationsoptionen gibt und sich keine eigenen Regeln zu dem Tool hinzufügen lassen. Auch die Dokumentation lässt zu wünschen übrig, was es Usern schwer macht, zu erkennen, welche Regel welches Problem verursacht. Der große Vorteil von JSLint ist allerdings, dass, solange man mit dem enthaltenen Regelset übereinstimmt, das Tool fertig konfiguriert und einsatzfähig ist.

JSHint JSHint ist ein Fork von JSLint und wurde als eine leichter zu konfigurierende Version des Ursprungstool entwickelt. User haben die Möglichkeit, Regeln zu konfigurieren und einer Konfigurationsdatei hinzuzufügen. Dazu kommt eine gute Dokumentation der einzelnen Regeln. Zudem unterstützt JSHint viele Libraries bereits out of the box und bringt Support von ECMAScript2015 mit. Allerdings besteht auch bei diesem Tool das Problem, dass es keine Möglichkeit zum Erstellen eigener Regeln gibt; gleichzeitig gibt es zwei verschiedene Option (enforcing und relaxing), die für Verwirrung bei der Konfiguration sorgen können. Ebenso ist es auch bei JSHint schwierig zu erkennen, welche Regel für Probleme sorgt.

JSCS Im Gegensatz zu den anderen beiden Lintern ist JSCS vor allem ein Überprüfungstool für Code-Styles und findet so nur Probleme bei der Code-Formatierung, nicht jedoch mögliche Bugs. Dadurch ist es zwar weniger flexibel als andere Tools, bietet aber trotzdem viele nützliche Funktionen. So gibt es über 90 verschiedene Regeln und Custom-Report-Unterstützung, was die Integration mit anderen Tools vereinfacht. Dazu machen mehrere Presets und eine vorgefertigte Konfigurationsdatei die Nutzung leichter. Nachteil ist auch hier, dass sich keine eigenen Regeln hinzufügen lassen; zudem schwächelt das Tool im Vergleich zu den anderen vorgestellten Tools ein wenig bei der Geschwindigkeit.

ESLint JSLint wurde mit dem Hintergedanken entwickelt, möglichst einfach erweiterbar zu sein und von Haus aus möglichst viele individuelle Regeln mitzubringen. Zusätzlich lassen sich weitere Regeln als Plug-in installieren. Dazu beinhaltet es auch automatisch den Regelnamen, sodass einfach zu erkennen ist, welche Regel die Fehlermeldung auslöst. Ebenso ist das Tool sehr flexibel und der Output leicht verständlich; zudem bietet es Support für ECMAScript2015 und JSX. Der einzige Nachteil des Tools: es benötigt einige Konfiguration, die für User stellenweise verwirrend ist.

Der Vergleich der vier beliebtesten Linting-Tools zeigt vor allem, dass alle Tools sowohl Vor- als auch Nachteile mit sich bringen. Die Wahl des richtigen Tools ist vor allem abhängig vom Einsatzgebiets; in jedem Fall kann der Einsatz eines Linters aber dazu beitragen, Probleme mit dem JavaScript-Code schon frühzeitig zu erkennen und zu beheben.

Natürlich ist dies nur eine kleine Auswahl der verschiedenen Tools, die es auf dem Markt gibt. Darum die Frage an euch: welches Linting-Tool ist euer Favorit? Nutzt ihr eines der hier genannten Tools oder setzt ihr doch auf ein ganz anderes?

Aufmacherbild: Blackboard list of pros and cons, for and against argument concept von Shutterstock / Urheberrecht: Brian A Jackson

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -