ESLint v7.0.0 z nową klasą CLIEngine
W ubiegłym tygodniu ogłoszono nową wersję ESLint v7.0.0— narzędzia do statycznej analizy kodu do identyfikacji problematycznych fragmentów w kodzie JavaScript. Pod wieloma względami jest on podobny do JSLint i JSHint. Jednak ESLint do analizy kody JS używa Espree, a do oceny wzorców w kodzie — AST. Dodatkową zaletą jest to, że ESLint jest całkowicie podłączalny, czyli każda reguła jest wtyczką, którą można dodać w trakcie korzystania.
Przewodnik migracji do ESLint v7.0.0
ESLint v7.0.0 dodaje kilka nowych funkcji i naprawia błędy znalezione w poprzednim wydaniu. Aby ułatwić przejście do nowej wersji, wydano przewodnik migracji, z wyjaśnieniami wszystkich zmian i opisujący sposób aktualizacji do najnowszego wydania.
Wprowadzone zmiany
Nowa wersja ESLint zrezygnowała z obsługi wydania Node.js 8 z powodu końca okresu eksploatacji. Zaktualizowano zasady rozpoznające literały bigint. Teraz będą domyślnie ostrzegały o większej liczbie przypadków. Znajdujące się w rdzeniu dziesięć reguł Node.js/CommomJS zostało uznanych za przestarzałe i przeniesione zostały do wtyczki eslint-plugin-node. Wzbogacona o kilka nowych zasad ( no-dupe-else-if, no-import-assign, no-setter-return) została eslint:recommended.
Nowa klasa ESLint
Klasa CLIEngine zapewnia synchroniczne API. Blokuje ono realizację takich funkcji, jak równoległe strzępienie, wspieranie modułów ES we współdzielonych configs/parsers/plugins/formatters. Dodaje także zdolność do wyświetlania wizualnie postępu ESLint. Klasa CLIEngine pozostała w rdzeniu, ale w przyszłości ESLint może ją usunąć. Z kolei nowa klasa — ESLint — zapewnia asynchroniczny interfejs API. ESLint w przyszłości będzie korzystać z jej rdzenia.
ESLint v7.0.0 dla deweloperów
Zaktualizowano domyślne wzorce ignorowania. Polecenia .eslintrc.js i bower_components/* nie będą już domyślnie ignorowane, jednak w node_modules będą ignorowane zagnieżdżone katalogi. ESLint 7 będzie teraz rozpoznawał wtyczki względem pliku konfiguracji wpisu. Pozwoli to na kolokowanie współdzielonych plików konfiguracyjnych spoza projektu z potrzebnymi wtyczkami. Nowością w tej wersji jest rozpoznawanie z bieżącego katalogu roboczego plików konfiguracyjnych i plików ignorowania przekazywanych do ESLint przy użyciu odpowiednio opcji -config path / to / a-config i -ignore-path path / to / a-ignore CLI. Nie trzeba będzie instalować wtyczek bezpośrednio w projekcie, użytkownicy będą mogli korzystać z udostępnionych wtyczek. Deweloperzy mogą się teraz cieszyć poprawą testowania niestandardowych reguł przy wtyczkach, dzięki dodatkowej weryfikacji wprowadzonej do klasy RuleTester.
Źródła: