3.0.0 • Published 2 years ago
eslint-config-alanramsay-react v3.0.0
eslint-config-alanramsay-react
ESLint config based on eslint-config-react-app and prettier.
How to install
- Run
npx install-peerdeps eslint-config-alanramsay-react --dev
How to configure
- Create a file named
.eslintrc.jswith the following contents:
module.exports = {
extends: ['eslint-config-alanramsay-react', 'plugin:react/jsx-runtime']
};- Create a file named
.eslintignorewith the following contents:
node_modules
!.eslintrc.js- Add any folders that you do not want to be linted into the
.eslintignorefile, e.g.build,out - Add
lintandlint-fixentries under thescriptssection 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)
How to run
- Use
npm run lint-fixto lint all files and fix any fixable errors automatically
Lint on commit using Husky and lint-staged
- Run
npm install --save-dev lint-staged husky - Add a
lint-stagedsection within yourpackage.jsonfile with the following content (note this is not within thescriptssection but in the root):
"lint-staged": {
"**/*.js": [
"eslint --fix",
"git add"
]
}- Add a
precommitscript to yourpackage.json, scripts, e.g.
"scripts": {
"lint": "eslint .",
"lint-fix": "eslint . --fix",
"lint-staged": "lint-staged"
}- You can now run
npm run lint-stagedto 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
precommitcommand to the scripts in yourpackage.jsonfile, 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.