Husky and lint-staged: Keeping Code Consistent
Joy Lee 🌻
Posted on July 11, 2024
When a team works on a software project together, it's important for everyone's code to be neat and easy to understand. But sometimes, different computers and ways of working can make the code messy. Tools like husky and lint-staged can help fix this problem by checking the code automatically before it's added to the project.
What is lint-staged?
lint-staged is a tool that checks your code for mistakes and fixes them when it's staged in git. By using lint-staged, it helps keep your code clean and consistent.
Installation
1 . Install lint-staged as a development dependency:
npm install --save-dev lint-staged
2 . Configure lint-staged in your package.json
file to run eslint and prettier on js and ts files.
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix --max-warnings=0", // both errors and warnings must be fixed
// "eslint --fix" // errors must be fixed but warnings can be ignored
"prettier --write"
]
}
3 . Run lint-staged on staged files using the following command:
npx lint-staged
What is husky?
husky is a tool that manages git hooks, automatically running scripts before each git commit. This setup ensures that lint-staged checks your code before it's committed. It helps you maintain code quality by catching issues before they're finalized.
Installation
1 . Install husky
and initialize it:
# husky init (create .husky folder)
npx husky-init && npm install
# husky - Git hooks install
npx husky install
2 . Check if prepare
command is added in your package.json
"scripts": {
"prepare": "husky install"
},
3 . Edit .husky > pre-commit
file with the following to run lint-staged before each commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
How It Works
- Stage your code changes.
-
husky
triggers the pre-commit hook. - The pre-commit hook executes
lint-staged
. -
lint-staged
runs eslint and prettier checks on staged files. - If errors or warnings are found, the commit is prevented with an error message.
Posted on July 11, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.