Hjem » Siste artikler » Slik kommer du i gang med ESLint i et eksisterende frontend-prosjekt uten å brekke alt

Slik kommer du i gang med ESLint i et eksisterende frontend-prosjekt uten å brekke alt

Hovedillustrasjon
Hovedillustrasjon. Foto: Daniil Komov / Pexels.

ESLint kan føles som et minefelt når du legger det til i et prosjekt som allerede lever, spesielt hvis koden har vokst uten tydelige regler. Plutselig lyser alt rødt, og ingen tør å merge noe som helst.

Poenget med ESLint er ikke å plage teamet, men å fjerne støy, stoppe dumme feil tidlig og gjøre koden mer forutsigbar. Her får du en konkret og skånsom måte å innføre ESLint i et frontend-prosjekt med React eller ren JavaScript uten total stopp i utviklingen.

Hva ESLint faktisk gjør for deg i hverdagen

ESLint er i bunn og grunn en automatisk kodeanmelder som sjekker filer mot et sett med regler. Noen regler fanger reelle feil, som ubrukte variabler eller glemte imports. Andre handler om stil, som anførselstegn og semikolon.

Den store gevinsten kommer når hele teamet har de samme reglene i editoren, i terminalen og i CI. Da blir diskusjoner om småting borte, og code review kan handle mer om arkitektur og logikk enn om mellomrom.

Plan før du installerer: hva vil du at ESLint skal være?

Det første du bør avklare, er hvilken rolle ESLint skal ha: kun fange bugs, eller også håndheve stil. I et eldre kodebase er det ofte lurt å starte konservativt og fokusere på regler som forhindrer reelle feil.

Bestem også om ESLint skal være blokkende i CI fra dag én. Mange velger en mellomløsning: start med advarsler, få ned antall brudd, og skrudd gradvis opp alvorlighetsgraden når ting er ryddigere.

Grunnoppsett: installasjon uten magi

Utgangspunktet her er et npm-basert frontend-oppsett. I rotmappen kan du starte med å installere grunnpakken:

  • Base:npm install --save-dev eslint
  • React:npm install --save-dev eslint-plugin-react eslint-plugin-react-hooks
  • TypeScript:hvis aktuelt, @typescript-eslint/parser og @typescript-eslint/eslint-plugin

Deretter kan du kjøre npx eslint --init for å få et utgangspunkt, men vær kritisk til forslagene. Verktøyet kan gi deg et veldig meningssterkt oppsett, som ikke nødvendigvis passer en eksisterende kodebase.

Lag en minimal .eslintrc som faktisk er håndterbar

Målet for første versjon er å få ESLint til å kjøre på koden uten tusenvis av feil. Start med svært få regler, og heller bygg på senere. Et typisk utgangspunkt i en .eslintrc.json kan være:

  • Velg et moderat preset, for eksempel "extends": ["eslint:recommended"]
  • Legg til React-relaterte presets kun hvis du bruker det
  • Slå av regler som eksploderer i rødt, og noter deg dem for senere opprydding

En god strategi er å eksplisitt sette noen regler til "off" i starten, så du har oversikt over hva du planlegger å skjerpe inn senere.

Unngå sjokk: start med få mapper og filer

I stedet for å la ESLint skanne alt fra dag én, kan du begrense deg til et lite område. For eksempel kun src/components eller filer endret siste uke. Det gir en mer håndterbar start.

Du kan lage egne npm-skript for ulike nivåer, som:

  • Rask sjekk:bare nye eller endrede filer via lint-staged
  • Full sjekk:hele src-mappen, som hovedsakelig kjøres i CI eller ved større ryddeøkter

Fiks automatisk det som kan fikses

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Rafael Minguet Delgado / Pexels.

En av styrkene til ESLint er automatiske rettinger. Med npx eslint src --fix kan du rydde unna en stor del av stilrelaterte brudd uten håndarbeid. Kjør dette i en egen branch og se nøye gjennom diffen.

Det er lurt å kombinere --fix med en formatter som Prettier eller lignende bare hvis du har kontroll på rekkefølgen. Mange velger å kjøre formatter først, deretter ESLint-autofix, for å unngå unødig støy i commit-historikken.

Integrasjon i editor: fang feil mens du skriver

ESLint gjør mest nytte når du ser problemene mens du skriver koden. De fleste editorer som Visual Studio Code, WebStorm og lignende har egne ESLint-plugins som kobler seg til prosjektets konfigurasjon.

Sjekk at editoren faktisk bruker ESLint-versjonen i prosjektet og ikke en global installasjon. Det sikrer at alle i teamet får samme opplevelse, uavhengig av lokale maskiner og globale pakker.

Bruk ESLint sammen med Git hooks uten å irritere alle

Git hooks kan være nyttig for å unngå at alvorlige lint-feil havner i repoet. Kombinasjonen Husky og lint-staged er vanlig, men vær forsiktig med hvor mye du presser inn i pre-commit.

En grei tilnærming er å kjøre ESLint kun på endrede filer med --fix i pre-commit. Full skanning av hele koden kan heller gjøres i CI, der det ikke blokkerer den daglige flyten i like stor grad.

Vanlige fallgruver og hvordan du unngår dem

Noen typiske problemer dukker opp nesten hver gang ESLint tas i bruk i eksisterende kode. Det handler ofte om for aggressive regler, feil parser for TypeScript, eller at regler overlapper med formatverktøyet ditt.

En enkel sjekkliste når ting ikke gir mening:

  • Stemmer parseren med det du faktisk skriver (JS vs TS)?
  • Har du samme regler definert flere steder, for eksempel både i .eslintrc og i et delt config-bibliotek?
  • Krangler ESLint med formatteren om anførselstegn, linjelengde eller semikolon?

En realistisk innføringsplan i fire trinn

Hvis du vil ha en ryddig og forutsigbar innføring, kan du tenke i fire steg. Først etablere et minimalt regelsett som alle overlever. Deretter aktivere ESLint i editor og på endrede filer i Git hooks.

Så kan du rydde gradvis ved å kjøre full lint og justere regler der det gir mening. Siste steg er å gjøre ESLint blokkende i CI for de reglene dere virkelig bryr dere om. Alt trenger ikke være perfekt før verktøyet begynner å gi verdi.

Når bør du si nei til mer ESLint?

Det er mulig å overdrive. Hvis en regel skaper mer frustrasjon enn forbedring, er det lov å skru den av eller sette den til advarsel. Målet er mindre kognitiv støy når du jobber, ikke mer.

Gå jevnlig gjennom konfigurasjonen sammen med teamet, rydd opp i regler som ikke lenger gir mening, og hold filen så kort og tydelig som mulig. En liten, forståelig konfigurasjon er enklere å leve med enn et enormt regelsett ingen helt husker hvorfor ble valgt.

0 kommentarer