This is a shared ESLint config with a few rules that I like to use. It has no dependencies, but should be used alongside ESLint and probably some other plugins.
yarn add -D eslint @trevorblades/eslint-config
Create an .eslintrc
file that extends this config. For more configuration options, check out the ESLint docs.
{
"extends": [
"@trevorblades",
// ...your other ESLint config extensions
]
}
Here's an example config for a project that uses React with TypeScript. It also features Prettier code formatting and import sorting.
yarn add -D eslint @trevorblades/eslint-config eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-prettier eslint-config-prettier prettier eslint-plugin-simple-import-sort @typescript-eslint/eslint-plugin @typescript-eslint/parser typescript
// @ts-check
/**
* @type {import('eslint').ESLint.ConfigData}
*/
const config = {
env: {
node: true,
browser: true,
},
extends: [
"@trevorblades",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
],
plugins: ["simple-import-sort"],
rules: {
"react/prop-types": "off",
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"@typescript-eslint/consistent-type-imports": "error",
},
}