reactjs - Eslint hitta men hoppa över .tsx-filer
Jag skulle vilja börja använda eslint på mina .tsx-filer.
Min konfiguration ser ut så här:
module.exports = {
'env': {
'browser': true,
'es2021': true
},
'settings': {
'react': {
'version': 'detect'
}
},
'extends': [
'eslint:recommended',
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended'
],
'parser': '@typescript-eslint/parser',
'parserOptions': {
'ecmaFeatures': {
'jsx': true
},
'ecmaVersion': 12,
'sourceType': 'module'
},
'plugins': [
'react',
'@typescript-eslint'
],
'rules': {
'indent': [
'error',
'tab'
],
'linebreak-style': [
'error',
'unix'
],
'quotes': [
'error',
'single'
],
'semi': [
'error',
'never'
]
}
}
Om jag har en fil med filändelsen .ts och kör detta kommando:
yarn eslint ./src/components/Frame.ts
... kan jag få en lista över lintningsfel.
Om jag ändrar filtillägget till .tsx och kör detta kommando på det:
yarn eslint ./src/components/Frame.tsx
... får jag inget meddelande alls. Ingen fel eller varning eller något. Det är som om filen skulle vara giltig.
I min VSCode har jag ESLint-tillägget. Det fungerar. Det markerar problemen. Såvitt jag vet använder detta tillägg samma .eslintrc-fil så konfigurationen borde vara bra.
Kan du ge någon idé om varför konfigurationen fungerar med tillägget och varför den inte fungerar i terminalen?
Svar #1
Problemet är hur du kör es-lint För närvarande kontrollerar @typescript-eslint inte .tsx som standard, du måste specificera vilka tillägg som behöver kontrolleras, till exempel
yarn eslint --ext=ts,tsx src
Detta kommando kommer att söka efter alla filer som slutar med .ts eller .tsx i src-mappen och @typescript-eslint kommer att fungera som förväntat med .ts eller .tsx
yarn eslint src/**/*.ts src/**/*.tsx
Detta kommando kommer att söka efter alla filer som slutar med .ts eller tsx i src-mappen men, @typescript-eslint kommer bara att fungera på .ts och kommer att ignorera .tsx
yarn eslint ./src/components/Frame.tsx
Detta kommando du försökte köra kommer att fungera på samma sätt som det andra kommandot yarn eslint src/**/*.ts src/**/*.tsx men, det kommer att söka efter ./src/components/Frame.tsx
