[FINAL_ARTICLE]
Nowa era wydajności w analizie kodu TypeScript
Zespół odpowiedzialny za Oxlint udostępnił właśnie wersję v7 silnika tsgolint, który odpowiada za analizę kodu z uwzględnieniem typów (type-aware linting). Najnowsza aktualizacja jest w pełni zsynchronizowana z TypeScript w wersji 7.0.2 i znacząco przybliża narzędzie do pełnej zgodności z ekosystemem typescript-eslint, implementując 59 z 61 dostępnych reguł wymagających analizy typów.
Wprowadzenie tej wersji to nie tylko rozszerzenie funkcjonalności o 16 nowych reguł, takich jak prefer-nullish-coalescing czy no-unnecessary-condition, ale przede wszystkim kolejny krok w optymalizacji wydajności. Dzięki szeregowi usprawnień, w tym współbieżnemu wykrywaniu plików tsconfig, buforowaniu odczytów z systemu plików oraz inteligentnym ścieżkom optymalizacyjnym, tsgolint osiąga wyniki od 12 do 18 razy szybsze niż standardowe połączenie ESLint z typescript-eslint.
Wydajność w praktyce
Testy przeprowadzone na dużych projektach open-source, takich jak VS Code czy TypeORM, na procesorach Apple M4 Pro, potwierdzają znaczącą przewagę nowego rozwiązania:
RepozytoriumESLint + typescript-eslinttsgolintPrzyspieszeniemicrosoft/vscode83.2s6.96s12xmicrosoft/typescript27.2s1.94s14xtypeorm/typeorm13.2s0.75s18xvuejs/core12.3s0.95s13x
Konfiguracja i diagnostyka
Wraz z nową wersją, proces konfiguracji stał się bardziej intuicyjny. Zamiast ręcznego definiowania skryptów dla każdego pakietu, analizę z uwzględnieniem typów można włączyć bezpośrednio w pliku konfiguracyjnym oxlint.config.ts lub oxlintrc.json. Użytkownicy mogą teraz korzystać z dwóch kluczowych opcji:
- typeAware: true – aktywuje reguły wymagające informacji o typach.
- typeCheck: true – dodatkowo raportuje błędy kompilatora TypeScript, eliminując potrzebę uruchamiania osobnego procesu sprawdzania typów.
Dla programistów dbających o wydajność narzędzi, wprowadzono również funkcję debugowania czasu wykonywania poszczególnych reguł. Uruchomienie polecenia z flagą –debug timings pozwala na precyzyjne zidentyfikowanie najbardziej kosztownych operacji w projekcie, co ułatwia optymalizację konfiguracji.
Nowy schemat wersjonowania i optymalizacja binariów
Wraz z wydaniem v7, twórcy wprowadzili przejrzysty system wersjonowania, który bezpośrednio odzwierciedla kompatybilność z kompilatorem TypeScript. Przykładowo, wersja v7.0.2000 oznacza, że narzędzie jest oparte na TypeScript 7.0.2, a ostatnie cztery cyfry wskazują na numer poprawki samego silnika tsgolint.
Dodatkowo, dzięki usunięciu informacji debugowych z binariów, udało się znacząco zmniejszyć rozmiar instalacyjny narzędzia. W przypadku systemów Darwin ARM64, rozmiar pliku wykonywalnego spadł o 26,6% (z ok. 118 zł do ok. 87 zł w przeliczeniu na wartość rynkową zasobów, choć w kontekście technicznym oznacza to redukcję z 29,7 MB do 21,8 MB), a paczka npm pobierana przez użytkowników jest mniejsza o blisko 45%. Zmiany te nie wpływają na szybkość działania ani jakość analizy kodu.

