Codeanalyse: ESLint 8.0 erfordert eine aktuelle Node.js-Version

Das JavaScript-Codeanalyse-Tool ESLint bringt in der neuen Hauptversion Breaking Changes mit. Unter anderem entfällt der Support für ältere Node.js-Versionen.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen

(Bild: Billion Photos/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Maika Möbus

Das ESLint-Team hat Version 8.0 des statischen Analysewerkzeugs für JavaScript-Code veröffentlicht. Neben neuen Features, Breaking Changes und Bugfixes widmete sich das Team auch der Dokumentation. Dort finden sich nun weitere Beispiele zu Funktionen des Open-Source-Tools sowie eine Referenz zum OpenJS Foundation Contributor License Agreement (CLA). Die Referenz zum CLA des Vorläufers JS Foundation (JSF) entfällt.

Mit den Node.js-Versionen 10, 13 und 15, die ihr End-of-Life (EoL) erreicht haben, lässt sich ESLint nicht mehr nutzen. ESLint 8.0 setzt Node.js 12.22, 14 oder 16 – oder deren höhere Versionen – voraus. Darauf weist die Migrationsanleitung insbesondere Anwenderinnen und Anwender von ESLint mithilfe einer Editor-Integration hin, denn auch der Editor muss mit den entsprechenden Node.js-Versionen umgehen können. Ansonsten empfiehlt es sich, bis zum Node.js-Upgrade auf mindestens Version 12.22 bei ESLint 7 zu verbleiben.

Weitere nicht abwärtskompatible Neuerungen sind die Entfernung der Formatter codeframe und table sowie eine strengere Auslegung der comma-dangle-Regel. Beispielsweise war in ESLint folgender Code möglich, da die Regel das dritte Element im Array ignorierte und nur das zweite Element las:

{
    "rules": {
        "comma-dangle": ["error", "never", { "arrays": "always" }]
    }
}

In der achten Hauptversion führt der obige Code zu einem Fehler und ist stattdessen so zu schreiben, dass sich nur zwei Elemente im Array befinden und das zweite Element entweder ein String oder ein Objekt ist:

{
    "comma-dangle": ["error", "never"],
    // or
    "comma-dangle": ["error", {
        "arrays": "never",
        "objects": "never",
        "imports": "never",
        "exports": "never",
        "functions": "never"
    }]
}

ESLint 8.0 setzt auf die kommende ECMAScript-Version 2022 und aktualisiert sowohl den Default-Parser als auch alle Core-Regeln auf die neue Syntax. Dazu zählen Class-Public-Instance-Felder, Private-Instance-Felder oder Top-level await.

Zu den weiteren Neuerungen zählt die zusätzliche Option enforceForClassFields für die class-methods-use-this-Regel. Die neue Option ist standardmäßig auf true gesetzt und stellt sicher, dass als Instance Field Initializer genutzte Funktionen this verwenden. Auch die max-classes-per-file-Regel erhält eine neue Option ignoreExpressions zum Ignorieren von Class Expressions. Sie ist standardmäßig auf false gesetzt.

Weitere Details zu ESLint 8.0 sind im ESLint-Blog nachzulesen.

(mai)