Tools for Consistent JavaScript Code Style
Tools and methodologies that will help you maintain consistency in your JavaScript code style.
Video
Prefer watching a video instead of reading an article, check this out. Of course, you should do both!
Consistency
Maintaining a consistent code style is not always easy. Previously this had to be manually policed with code reviews. Making sure all files conform to the project’s standards can be tedious and a big-time waster.
Fortunately there are a handful of tools to automate these repetitive tasks.
Bit.dev
Bit.dev is a cloud component hub. It’s a place to publish, document and organize JS components. It is not a code-style validator but it’s definitely helpful in standardizing code style as it makes reusing code so much easier.
Reusing code, in and across repositories, is essential for standardized and clear code.
Prettier
Prettier is the most popular code formatter for JavaScript applications. With Prettier, we no longer have to worry about code style, just press save and let Prettier handle it.
- An opinionated code formatter
- Supports many languages
- Integrates with most editors
- Has few options
Install Prettier
Install the VSCode extension
Install the prettier
NPM Package
npm install --save-dev prettier
Note: There seems to be a minor conflict between the Prettier plugin and Prettier 2.0 which just came out. I was able to solve this by setting this rule in the .prettierrc.yml
file.
arrowParens: always
ESLint
ESLint will analyze our code to prevent problems before committing to the codebase.
ESLint statically analyzes your code to quickly find problems.
Many problems ESLint finds can be automatically fixed.
Install the VSCode extension
Install the eslint
NPM Package
npm install --save-dev eslint
Add lint
to package.json. I also like to add a postlint
so we can see some positive feedback after it runs.
{
"scripts": {
"lint": "eslint src",
"postlint": "echo ✅ lint valid"
}
}
Prettier + ESLint
There’s a few extra steps we need to do to get these two pieces of software to play nice together.
Install the eslint-plugin-prettier
NPM Package.
npm install --save-dev eslint-plugin-prettier eslint-config-prettier
Create .eslintrc.yml
, add the prettier
plugin, extend both Prettier and ESLint recommended settings and set the prettier rules to error
.
plugins:
- prettier
extends:
- eslint:recommended
- plugin:prettier/recommended
env:
es6: true
node: true
browser: true
rules:
prettier/prettier: error
VSCode
You may need to restart VSCode after making changes to your ESLint file.
If your format-on-save is formatting differently than the rules are setup, restart VSCode.
You may need to enable format-on-save in VSCode.
Husky
Husky is the guard for your repository to stop bad code from enter your codebase.
Install the husky
NPM Package
npm install --save-dev husky
Add a husky
section to the package.json
.
{
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
}
}
Here we are connecting to the pre-commit
hook. This hook will run before each git commit
, potentially blocking the bad code before it can enter the git repo.
This
Read the Husky docs for more info about other hooks you can connect to.
Summary
- Use Prettier to format your code on save.
- ESLint will analyze your codebase for issues.
- Husky will run these tasks before each commit.
Check out my Twitter for more tips: @joelnet