@tidusia/eslint-config-tidusia v0.0.1
Opinionated Eslint + Prettier, React, TypeScript setup
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.
What it does (or will do)
- Lints TypeScript based on the latest standards
- Fixes issues and formatting errors with Prettier
- Lints + Fixes inside of html script tags (plugins html)
- Lints + Fixes React via eslint-config-airbnb
Installing
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 eslint-config-tidusia
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"
]
}
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 .",
"lint:fix": "eslint . --fix"
},
- 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.
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"
while prettier options go under "prettier/prettier"
. Note that prettier rules overwrite anything in my config (trailing comma, and single quote), so you'll need to include those as well.
{
"extends": [
"tidusia"
],
"rules": {
"no-console": 2,
"prettier/prettier": [
"error",
{
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 120,
"tabWidth": 8,
}
]
}
}
With Create React App
- Run
npx install-peerdeps --dev eslint-config-tidusia
- Crack open your
package.json
and replace"extends": "react-app"
with"extends": "tidusia"
With Gatsby
- Run
npx install-peerdeps --dev eslint-config-tidusia
- If you have an existing
.prettierrc
file, delete it. - follow the
Installing
steps above
With Yarn
It should just work, but if they aren't showing up in your package.json, try npx install-peerdeps --dev eslint-config-tidusia -Y
🤬🤬🤬🤬 IT'S NOT WORKING
Start fresh. Sometimes modules can goof you up. This will remove them all: remove your package-lock.json
file and delete the node_modules/
directory.
Then follow the above instructions again.
5 years ago