Когда я пытаюсь установить свойство «файлы» в файле конфигурации ESLint «.eslintrc.cjs», я получаю следующую ошибку от расширения EsLint VsCode:
ESLint: конфигурация ESLint в client.eslintrc.cjs недействительна: - Неожиданное свойство верхнего уровня «файлы». . Дополнительные сведения см. в выходном канале «ESLint».
Каждый раз, когда я запускаю npm run lint (я включаю этот скрипт в свой файл package.json "lint": "eslint ./**",
), ESlint ищет ошибки не только в файлах .jsx, но и в таких файлах, как .svg, .png и т. д. Итак, я пытаюсь добавьте следующее свойство files: ['src/**/*.jsx'],
в мой файл конфигурации ESLint, чтобы избежать проверки файлов вне каталога src и файлов, которые не являются .jsx.
Это мой файл .eslintrc.cjs:
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: [
'airbnb',
'airbnb/hooks',
'plugin:react/recommended',
],
overrides: [
],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: [
'react',
],
files: ['src/**/*.jsx'],
rules: {
'react/jsx-uses-react': 'off',
'react/react-in-jsx-scope': 'off',
'import/no-extraneous-dependencies': ['error', { devDependencies: true }],
'no-use-before-define': ['error', { functions: false }],
'no-param-reassign': ['error', { props: false }],
},
};
Вы должны использовать overrides
, чтобы включить files
, например,
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: ['airbnb', 'airbnb/hooks', 'plugin:react/recommended'],
overrides: [
{
plugins: ['react'],
files: ['src/**/*.jsx'],
rules: {
'react/jsx-uses-react': 'off',
'react/react-in-jsx-scope': 'off',
'import/no-extraneous-dependencies': [
'error',
{ devDependencies: true },
],
'no-use-before-define': ['error', { functions: false }],
'no-param-reassign': ['error', { props: false }],
},
},
],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
}
Смотрите документацию здесь https://eslint.org/docs/latest/use/configure/configuration-files#how-do-overrides-work.
Это зависит от ваших вариантов использования. Эти правила в overrides
будут применяться только к files
, который вы определили рядом, если вы установите rules
на верхнем уровне, то есть рядом с env
и т.п., ESLint применит правила к совпавшим файлам по умолчанию, таким как *.js
.
Спасибо, Сэм! это сработало отлично! Нужно ли включать правила и в переопределения?