Codeanalyse: ESLint 7.0 gibt sich flexibler und erweitert die Empfehlungen

Das JavaScript-Codeanalyse-Tool ESLint verarbeitet neuerdings Dateien ohne .js-Endung und verbessert die Testfunktion für eigene Regeln.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Codeanalyse: ESLint 7.0 gibt sich flexibler und erweitert die Empfehlungen
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Das Open-Source-Tool ESLint ist in Version 7.0 erschienen und bietet unter anderem einen flexibleren Umgang mit Sourcecode-Dateien. Das Werkzeuge zur statischen Codeanalyse für JavaScript bringt zudem erweiterte Empfehlungen für den Einsatz von Regeln mit und hat eine neue Klasse für den Lint-Prozess an Bord, die eine asynchrone API bietet.

Von Node.js 8, das Ende 2019 offiziell sein End of Life erreicht hat, verabschiedet sich ESLint. Darüber hinaus enthält Version 7 zahlreiche Breaking Changes, die zu Inkompatibilitäten führen können.

Die neue Klasse ESLint bietet eine asynchrone API und ist nun standardmäßig für die Analyse aktiviert. Die bisher verwendete Klasse CLIEngine verhindert mit ihrer synchronen API einige Weiterentwicklungen wie paralleles Linting. Zwar soll sie mittelfristig Bestandteil von ESLint bleiben, wird aber wohl langfristig verschwinden.

Nennenswert ist zudem, dass ESLint Dateien ohne .js-Endung auch ohne Angabe des --ext-Parameters verarbeitet, sofern die Dateien explizit in overrides[].files angegeben sind. Außerdem bietet die RuleTester-Klasse zusätzliche Funktionen zum Validieren eigener Regeln in Plug-ins.

Drei neue Regeln ergänzen das Portfolio der über die "extends": "eslint:recommended"-Property aktivierten empfohlenen Regeln:

  • no-dupe-else-if warnt, wenn in else if-Ketten zweimal dieselbe Bedingung auftaucht,
  • no-setter-return hebt den virtuellen Zeigefinger, wenn ein Setter einen Wert zurückgibt und
  • no-import-assign mahnt bei Zuweisungen an importierten Bindings, die zu Laufzeitfehlern führen.

Die Regeln kennt ESLint bereits seit Version 6.4 beziehungsweise 6.7, bisher gehörten sie aber nicht zum Standardumfang der über eslint:recommended empfohlenen Überprüfungen.

Zahlreiche Regeln sind zudem auf das Zusammenspiel mit BigInt-Literale erweitert, also Zahlenwerte, die auf n enden.

Mehr Infos

ESLint ist ein im JavaScript-Umfeld verbreitetes Werkzeug zur statischen Codeanalyse. Es gehört zu den Lint-Tools, die ursprünglich auf das Unix-Werkzeug lint zurückgehen, das Bell Labs Ende der 70er Jahre für die Programmiersprache C herausgegeben hat. Lint-Tools oder Linter dursuchen Sourcecode nach potenziellen Fehlern, die damalige Compiler oft nicht erkannten und so fehlerhaften Code erzeugten. Der Begriff leitet sich aus dem englischen Wort für Fusseln beziehungsweise Fluseln ab, die der Linter aus den Codefasern entfernen soll.

Nicholas C. Zakak, der ursprüngliche Entwickler von ESLint, hat das Tool entworfen, weil die seinerzeit verfügbaren Analysetools JSLint und JSHint zwar Sourcecode auf das Einhalten vorgegebene Regeln überprüft haben, aber keine Option zum Erweitern des Katalogs um eigene Regeln an Bord hatten. ESLint testet sowohl auf Einhalten der Regeln zum jeweils aktuellen ECMAScript-Standard als auch auf individuelle Regeln.

Zahlreiche Entwicklungsumgebungen und Sourcecode-Editors wie WebStorm oder Visual Studio Code bieten Anbindungen für ESLint, und das TypeScript-Team bemüht sich um eine Parität mit dem auf den JavaScript-Aufsatz zugeschnittenen Tool TSLint, um die Vorzüge wie Skalierbarkeit und Performance von ESLint zu nutzen.

Weitere Neuerungen und Änderungen in ESLint v7 lassen sich dem Blogbeitrag zum Release entnehmen. Ein separater Migrationsleitfaden hilft beim Umgang mit den Inkompatibilitäten im Vergleich zu ESLint 6.x. (rme)