Skonfigurowałem eslint
& eslint-plugin-react
.
Kiedy uruchamiam ESLint, linter zwraca no-unused-vars
błędy dla każdego komponentu React.
Zakładam, że nie rozpoznaje, że używam składni JSX lub React. Jakieś pomysły?
Przykład:
app.js
import React, { Component } from 'react';
import Header from './header.js';
export default class App extends Component {
render() {
return (
<div>
<Header />
{this.props.children}
</div>
);
}
}
Błędy liniowe:
/my_project/src/components/app.js
1:8 error 'React' is defined but never used no-unused-vars
2:8 error 'Header' is defined but never used no-unused-vars
Oto mój .eslintrc.json
plik:
{
"env": {
"browser": true,
"es6": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},
"sourceType": "module"
},
"plugins": [
"react"
],
"rules": {
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
"indent": [
"error",
2
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
javascript
reactjs
jsx
eslint
Don P.
źródło
źródło
React
ale go nie używasz, po prostu używaszComponent
, który jest poprawnie importowany.Header
również błąd? (W rzeczywistości musisz zaimportować Reacta, w przeciwnym razie, gdy JSX zostanie transpiled, wyświetli się błąd)Odpowiedzi:
W swoim
.eslintrc.json
, podextends
, dołącz następującą wtyczkę:'extends': [ 'plugin:react/recommended' ]
Źródło
źródło
Aby rozwiązać ten jedyny problem bez dodawania nowych reguł z
react/recommended
instalacjieslint-plugin-react
:dodaj
.eslintrc.js
:"plugins": ["react"]
i:
"rules": { "react/jsx-uses-react": "error", "react/jsx-uses-vars": "error" }
źródło
Ponieważ znalazłem to podczas googlowania, powinieneś wiedzieć, że ta prosta zasada wystarczy, aby zapobiec tej wiadomości:
react/recommended
Zestaw reguł dodaje wiele innych reguł może nie chcieć.źródło
W moim przypadku musiałem dodać
.eslintrc.js
:'extends': [ 'plugin:react/recommended' ]
plus specjalne poprawki, aby pozbyć się importu wstępnego:
import { h } from 'preact'
ale możesz użyć tego przykładu, aby pozbyć się określonych ostrzeżeń, takich jak:"no-unused-vars": [ "error", { "varsIgnorePattern": "^h$" } ],
źródło
Najszybsza naprawa
Aby zignorować wszystkie zmienne TitleCase, dodaj to do konfiguracji ESLint:
{ "rules": { "no-unused-vars": [ "error", { "varsIgnorePattern": "^[A-Z]" } ] ] }
Poprawna poprawka
Użyj eslint-plugin-act, aby zignorować zmienne React.
Dodaj to do swojej konfiguracji ESLint:
{ "plugins": [ "react" ], "rules": { "react/jsx-uses-vars": "error", "react/jsx-uses-react": "error" } }
Sugerowana poprawka
Użyj eslint-plugin-act, aby poprawić wykorzystanie JSX, a nie tylko uciszyć ten błąd.
Dodaj to do swojej konfiguracji ESLint:
{ "extends": [ "plugin:react/recommended" ] }
Jeśli używasz XO , zobacz eslint-config-xo -active .
źródło
Jeśli tworzysz projekt za pomocą interfejsu CLI aplikacji create-react-app, możesz
npm run eject
edytować pole package.json „eslintConfig”, na przykład:`"eslintConfig": { "extends": "react-app", "rules": { "eqeqeq": "off", "no-unused-vars": "off", } },`
eslint zostanie zamknięty
źródło