Tools for Consistent JavaScript Code Style

Tools and methodologies that will help you maintain consistency in your JavaScript code style.

Joel Thoms
Bits and Pieces

--

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.

Exploring shared React components in Bit.dev

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.

prettier-icon-8884
  • 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

woof!

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

Cheers!

Learn More

--

--

Computer Scientist and Technology Evangelist with 20+ years of experience with JavaScript!