reactjs - Hur stoppar man npm build när ESLint har varningar?


När jag hanterar ett mycket omoget team vill jag att react-typescript-byggnaden ska misslyckas när ESLint ger varningar.

src/modules/security/components/ForgotPasswordBox/index.tsx
  Line 8:18:  'FormikHelpers' is defined but never used  @typescript-eslint/no-unused-vars

src/modules/security/components/OTPVerificationBox/modalverficationcode.tsx
  Line 54:18:  Expected '!==' and instead saw '!='  eqeqeq
  Line 63:29:  Expected '===' and instead saw '=='  eqeqeq

Men på nätet hittar jag bara motsatsen där folk skulle vilja stänga av varningar eller bygga för att fortsätta även med varningar, vilket är precis motsatsen till vad jag letar efter.

Jag använder inte byggpipeline eller något sådant. Vi har en React-TypeScript-app med NPM som pakethanterare.

 "scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"lint": "eslint . --max-warnings=0"
},

  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },

vänligen låt mig veta hur jag kan uppnå detta beteende? Observera att inställningen strict i TypeScript-kompilatorn redan är satt till true.

Svar #1

Istället för att låta ditt build-skript misslyckas kan du antingen uppdatera din CI för att köra npm run lint && npm run build eller skapa ett nytt skript att använda i din CI (t.ex. "production": "npm run lint && npm run build").

På detta sätt kommer CI-byggnaden att misslyckas på lint-skriptet innan den ens börjar med build-skriptet. Detta exponerar logiken, istället för att dölja den inom build-skriptet.


I framtiden skulle du kunna överväga att köra dessa parallellt och få antingen ett misslyckande att misslyckas med CI-bygget och/eller kräva ett godkänt GitHub-statuskontroll (baserat på framgång/misslyckande för varje skript).