ESLint config based on eslint-config-react-app and prettier.
- Run
npx install-peerdeps eslint-config-alanramsay-react --dev
- Create a file named
.eslintrc.js
with the following contents:
module.exports = {
extends: ['eslint-config-alanramsay-react', 'plugin:react/jsx-runtime']
};
- Create a file named
.eslintignore
with the following contents:
node_modules
!.eslintrc.js
- Add any folders that you do not want to be linted into the
.eslintignore
file, e.g.build
,out
- Add
lint
andlint-fix
entries under thescripts
section of your package.json, e.g:
"scripts": {
"lint": "eslint .",
"lint-fix": "eslint . --fix"
}
Note these commands will lint all JavaScript files in your project so you it is important that you have ignored any output folders by adding them to the .eslintignore
file (copying the globs from your .gitignore file is normally helpful)
- Use
npm run lint-fix
to lint all files and fix any fixable errors automatically
- Run
npm install --save-dev lint-staged husky
- Add a
lint-staged
section within yourpackage.json
file with the following content (note this is not within thescripts
section but in the root):
"lint-staged": {
"**/*.js": [
"eslint --fix",
"git add"
]
}
- Add a
precommit
script to yourpackage.json
, scripts, e.g.
"scripts": {
"lint": "eslint .",
"lint-fix": "eslint . --fix",
"lint-staged": "lint-staged"
}
- You can now run
npm run lint-staged
to fix linting errors in any JavaScript files that are currently staged in Git. When you have a large codebase, this will be significantly faster than linting all files in your project unnecessarily. - Add a
precommit
command to the scripts in yourpackage.json
file, e.g.
"scripts": {
"lint": "eslint .",
"lint-fix": "eslint . --fix",
"lint-staged": "lint-staged",
"precommit": "lint-staged"
}
- Whenever you commit to Git, the system will now automatically run
lint-staged
, which will automatically fix any fixable linting issues in files that that are currently staged in Git.