69 lines
2.1 KiB
JavaScript
69 lines
2.1 KiB
JavaScript
|
/** @type {import("eslint").Linter.Config} */
|
||
|
module.exports = {
|
||
|
parserOptions: {
|
||
|
// 指定ESLint可以解析JSX语法
|
||
|
ecmaVersion: 'latest',
|
||
|
sourceType: 'module',
|
||
|
// React启用jsx
|
||
|
ecmaFeatures: {
|
||
|
jsx: true,
|
||
|
},
|
||
|
},
|
||
|
extends: [
|
||
|
// airbnb规范
|
||
|
// https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb
|
||
|
'airbnb',
|
||
|
// 兼容typescript的airbnb规范
|
||
|
// https://github.com/iamturns/eslint-config-airbnb-typescript
|
||
|
'airbnb-typescript',
|
||
|
// react hooks的airbnb规范
|
||
|
'airbnb/hooks',
|
||
|
'./base-ts',
|
||
|
],
|
||
|
env: {
|
||
|
node: true,
|
||
|
browser: true,
|
||
|
},
|
||
|
plugins: ['@typescript-eslint', 'react-refresh', 'import', 'unused-imports', 'prettier'],
|
||
|
ignorePatterns: [
|
||
|
// Ignore dotfiles
|
||
|
'node_modules/',
|
||
|
'dist/',
|
||
|
],
|
||
|
overrides: [
|
||
|
{
|
||
|
files: ['*.js?(x)', '*.ts?(x)', '*.json'],
|
||
|
},
|
||
|
],
|
||
|
rules: {
|
||
|
/* ********************************** React and Hooks ********************************** */
|
||
|
'react/jsx-uses-react': 1,
|
||
|
'react/jsx-uses-vars': 1,
|
||
|
'react/jsx-no-useless-fragment': 0,
|
||
|
'react/display-name': 0,
|
||
|
'react/button-has-type': 0,
|
||
|
'react/prop-types': 0,
|
||
|
'react/jsx-props-no-spreading': 0,
|
||
|
'react/destructuring-assignment': 0,
|
||
|
'react/static-property-placement': 0,
|
||
|
'react/react-in-jsx-scope': 0,
|
||
|
'react/require-default-props': 0,
|
||
|
'react/jsx-filename-extension': [1, { extensions: ['.jsx', '.tsx'] }],
|
||
|
'react/function-component-definition': 0,
|
||
|
'react-hooks/exhaustive-deps': 0,
|
||
|
|
||
|
/* ********************************** jax-a11y ********************************** */
|
||
|
'jsx-a11y/anchor-is-valid': 0,
|
||
|
'jsx-a11y/no-static-element-interactions': 0,
|
||
|
'jsx-a11y/click-events-have-key-events': 0,
|
||
|
'jsx-a11y/label-has-associated-control': [
|
||
|
'error',
|
||
|
{
|
||
|
required: {
|
||
|
some: ['nesting', 'id'],
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
};
|