AccueilActualités informatiqueAnalyse du code : ESLint 8.0 nécessite une version actuelle de Node.js

Analyse du code : ESLint 8.0 nécessite une version actuelle de Node.js

L’équipe d’ESLint a publié la version 8.0 de l’outil d’analyse statique du code JavaScript. Outre les nouvelles fonctionnalités, les modifications de rupture et les corrections de bogues, l’équipe s’est également consacrée à la documentation. Il y a maintenant plus d’exemples de fonctions de l’outil open source ainsi qu’une référence à l’accord de licence de contributeur (CLA) de la Fondation OpenJS. La référence à la CCT du prédécesseur JS Foundation (JSF) n’existe plus.

Sommaire

ESLint ne peut plus être utilisé avec les versions 10, 13 et 15 de Node.js, qui ont atteint leur fin de vie (EoL). ESLint 8.0 nécessite Node.js 12.22, 14 ou 16 – ou leurs versions supérieures. Les instructions de migration le signalent en particulier aux utilisateurs d’ESLint avec l’aide d’une intégration d’éditeur, car l’éditeur doit également être en mesure de gérer les versions Node.js correspondantes. Sinon, il est recommandé de rester avec ESLint 7 jusqu’à la mise à niveau de Node.js vers au moins la version 12.22.

Les autres innovations qui ne sont pas rétrocompatibles sont la suppression du formateur. codeframe et table et une interprétation plus stricte de la comma-dangle-règle. Par exemple, dans ESLint, le code suivant était possible parce que la règle ignorait le troisième élément du tableau et ne lisait que le deuxième élément :

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

Dans la huitième version majeure, le code ci-dessus entraîne une erreur et doit être écrit de manière à ce qu’il n’y ait que deux éléments dans le tableau et que le deuxième élément soit une chaîne ou un objet :

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

ESLint 8.0 est basé sur la prochaine version 2022 d’ECMAScript et met à jour à la fois l’analyseur par défaut et toutes les règles de base à la nouvelle syntaxe. Il s’agit notamment des champs classe-public-instance, des champs privé-instance ou des champs de niveau supérieur. await.

D’autres innovations comprennent l’option supplémentaire enforceForClassFields pour le class-methods-use-this-règle. La nouvelle option est fixée par défaut à true par défaut, et garantit que les fonctions utilisées comme initialisateurs de champs d’instance this sont utilisés. De même, le max-classes-per-file-rule reçoit une nouvelle option ignoreExpressions pour ignorer les expressions de classe. Il est réglé par défaut sur false par défaut.

Plus de détails sur ESLint 8.0 peuvent être trouvés sur le blog d’ESLint.

Plus d'articles