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.
-
If you don't already have a
package.json
file, create one withnpm init
. -
Then we need to install everything needed by the config:
npx install-peerdeps --dev @tidusia/eslint-config
-
You can see in your package.json there are now a big list of devDependencies.
-
Create a
.eslintrc
file in the root of your project's directory (it should live where package.json does). Your.eslintrc
file 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 lint
and fix all fixable issues withnpm run lint:fix
. You probably want your editor to do this though.
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.
- Run
npx install-peerdeps --dev @tidusia/eslint-config
- Crack open your
package.json
and replace"extends": "react-app"
with"extends": "@tidusia/eslint-config"
- Run
npx install-peerdeps --dev @tidusia/eslint-config
- If you have an existing
.prettierrc
file, delete it. - follow the
Installing
steps above