@tidusia/eslint-config v2.3.0
Opinionated Eslint config to work with Prettier, React and TypeScript
The problem
I love high code quality standards, but setting up and maintaining configuration takes a long time for each project.
One day, I found eslint-config-wesbos from Wes Bos. I loved the idea : a unique place to share my favorite eslint configuration of the moment.
One place for all the rules, one place to maintain them. Easy to distribute as a npm package for each project.
Installing
If you don't already have a
package.jsonfile, create one withnpm init.Then we need to install everything needed by the config:
npx install-peerdeps --dev @tidusia/eslint-configYou can see in your package.json there are now a big list of devDependencies.
Create a
.eslintrcfile in the root of your project's directory (it should live where package.json does). Your.eslintrcfile should look like this:
{
"extends": [
"@tidusia/eslint-config"
]
}Tip: You can alternatively put this object in your package.json under the property "eslintConfig":. This makes one less file in your project.
- You can add two scripts to your package.json to lint and/or fix:
"scripts": {
"lint": "eslint . --ignore-path .gitignore",
"lint:fix": "eslint . --fix --ignore-path .gitignore"
},- Now you can manually lint your code by running
npm run lintand fix all fixable issues withnpm run lint:fix. You probably want your editor to do this though.
Settings
If you'd like to overwrite eslint or prettier settings, you can add the rules in your .eslintrc file. The ESLint rules go directly under "rules".
{
"extends": [
"@tidusia/eslint-config"
],
"rules": {
"no-console": 2,
}
}After that, create your own prettier configuration or check out my shared prettier config for a quick start.
With Create React App
- Run
npx install-peerdeps --dev @tidusia/eslint-config - Crack open your
package.jsonand replace"extends": "react-app"with"extends": "@tidusia/eslint-config"
With Gatsby
- Run
npx install-peerdeps --dev @tidusia/eslint-config - If you have an existing
.prettierrcfile, delete it. - follow the
Installingsteps above