ESLint versus Prettier: The Code Quality Cops

When it comes to maintaining high-quality code, two tools often come into play: ESLint and Prettier. They may seem similar initially, but each has a unique specialty.

Understanding the differences and strengths of each can help you know which tool to use for what job.

ESLint: Catching Potential Problems

ESLint serves as a tool for identifying and addressing issues in JavaScript code.

It functions by analyzing the code for patterns that could lead to errors, enforcing best practices, and maintaining consistent coding standards.

his tool is particularly helpful in identifying issues that might not be immediately apparent but could lead to problems in code execution or maintenance.

For instance, consider the following code:

let user = {
  name: "Alice",
  age: 25,


At first glance, this code may seem correct. However, ESLint can flag the potential issue of accessing a property (location) not defined in the user object. This is a common source of errors in JavaScript, where trying to access a property of undefined or null can lead to runtime errors.

ESLint can be configured to highlight such potentially unsafe property accesses, encouraging the developer to either define all necessary properties or check for their existence before access.

ESLint acts as an automated code review tool, helping maintain a high code quality by catching mistakes early in development.

And catching bugs before we send them to are users is nothing we will complain about.

Prettier: Ensuring Consistent Formatting

Prettier, in contrast, is an opinionated code formatter. It disregards the logic or functionality of your code, focusing solely on its appearance.

Prettier enforces a consistent style by parsing and reprinting your code with rules that consider the maximum line length, wrapping code when necessary, or enforcing semicolons.

Here's an example of how Prettier works:

Before Prettier:

function hello(name){console.log("Hello, "+name+"!")}

After Prettier:

function hello(name) {
  console.log("Hello, " + name + "!");

Prettier transforms the code into a more readable and aesthetically pleasing format without altering its functionality.

Since we write code for humans and our preferences, like tabs versus spaces, Prettier removes the arguments with other developers by automatically enforcing and applying the rules so we don't have to think about them.

Complementary Tools

Using ESLint and Prettier together is a best practice for many development projects.

While ESLint focuses on the quality and safety of your code, Prettier ensures that the code's formatting is consistent and clean. This combination leads to code that is not only functional and error-free but also well-structured and easy to read.

In summary, ESLint and Prettier serve different but complementary purposes.

ESLint is your tool for ensuring code quality and avoiding potential problems, while Prettier is your solution for consistent and clean formatting.

Together, they form a powerful duo that can significantly improve the maintainability and readability of your code, making your development process more efficient and error-free.

So, use ESLint to catch potential code issues and Prettier to enforce consistent formatting. If you don't separate these concerns, you can often run into issues as they battle against each other.

But if you use the right tool for the job, you should have a much better developer experience.

Happy coding! ✌️

Avatar for Niall Maher

Written by Niall Maher

Founder of Codú - The web developer community! I've worked in nearly every corner of technology businesses; Lead Developer, Software Architect, Product Manager, CTO and now happily a Founder.


Fetching comments

Hey! 👋

Got something to say?

or to leave a comment.