Set up ESLint, Prettier, and VSCode for linting, formatting, and optimizing JavaScript code quality

Harish Kumar · · 3746 Views

In this comprehensive tutorial, we will explore how to set up and configure ESLint, Prettier, and Visual studio code to improve code quality and maintain consistent code style in your JavaScript projects.

Why Code Linting and Formatting Matter

Before diving into the setup process, let's understand why code linting and formatting are crucial for JavaScript development. Linting is the process of analyzing code for potential errors, bugs, and adherence to coding standards. It helps catch common mistakes and enforces best practices, improving code quality and maintainability.

Formatting, on the other hand, focuses on the appearance of the code. It ensures consistent indentation, spacing, and other stylistic conventions, making the code more readable and enhancing collaboration among developers. Consistent code formatting is especially important in team projects, where different coding styles can lead to confusion and inconsistencies.

Setting Up ESLint in VSCode

To get started, we need to install ESLint and configure it in our Visual Studio Code (VSCode) editor. Follow these steps to set up ESLint:

1.  Install the ESLint package as a dev dependency in your project:

npm install eslint --save-dev


yarn add eslint --dev

 2.  Next, generate the .eslintrc.json configuration file by running the following command in your project's root directory:

npx eslint --init


yarn run eslint --init

This command will prompt you with a series of questions to customize the ESLint configuration for your project. Choose options that align with your preferences and project requirements.

3.  Once the configuration is set up, you can start linting your JavaScript files. Open a JavaScript file in VSCode, and you will see ESLint highlighting any errors or warnings in the code.

4.  To enable automatic linting, go to the VSCode settings by pressing Ctrl + , or navigating to File -> Preferences -> Settings. In the settings JSON file, add the following configuration:

"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true

This configuration tells VSCode to automatically run ESLint and fix all fixable errors on file save.

With ESLint configured and integrated into VSCode, you now have a powerful tool for catching errors and enforcing coding standards in your JavaScript projects.

Integrating Prettier for Code Formatting

While ESLint is excellent for catching errors, Prettier focuses on code formatting. It helps ensure consistent code style across your project, making it more readable and maintainable. To integrate Prettier with ESLint, follow these steps:

1.  Install Prettier and related ESLint plugins as dev dependencies in your project:

npm install eslint-config-prettier eslint-plugin-prettier prettier --save-dev


yarn add eslint-config-prettier eslint-plugin-prettier prettier --dev

2.  Once the packages are installed, add the following line to the extends section of your .eslintrc.json file:

"extends": [

This configuration ensures that ESLint and Prettier work together harmoniously, with Prettier's formatting rules being applied alongside ESLint's linting rules.

3.  To enable automatic code formatting on save, add the following configuration to your VSCode settings JSON file:

"editor.formatOnSave": true

This configuration tells VSCode to format the code using Prettier whenever you save a file.

Now, whenever you save a JavaScript file in VSCode, ESLint will catch any errors, and Prettier will automatically format the code according to your configuration, ensuring consistent code style and improving readability.

Additional ESLint and Prettier Configuration

To further customize your ESLint and Prettier setup, you can modify the .eslintrc.json file and add specific rules and configurations. Here are a few examples:

  1. Enabling specific ESLint rules: You can add rules to the "rules" section of your .eslintrc.json file to enforce specific coding conventions. For example:

"rules": {
    "no-console": "warn",
    "no-unused-vars": "error"
  1. Prettier configuration: Prettier allows you to customize various formatting options according to your preferences. Create a .prettierrc file in your project's root directory and add your preferred configuration. For example:

    "semi": true,
    "singleQuote": true,
    "tabWidth": 2

By fine-tuning your ESLint and Prettier configurations, you can tailor them to meet your specific project requirements and coding style preferences.


Congratulations! You have successfully set up ESLint and Prettier in your Visual studio code editor to improve code quality and maintain consistent code style in your JavaScript projects. By leveraging these powerful tools, you can catch errors, enforce coding standards, and ensure your code is clean and readable.

Remember to regularly update your ESLint and Prettier configurations to align with evolving best practices and coding conventions. With a well-configured code linting and formatting setup, you can enjoy a smoother and more efficient JavaScript development experience. Happy coding!


Please login or create new account to add your comment.

You may also like:

JavaScript Array .filter(): A Comprehensive Tutorial

JavaScript offers several powerful methods to manipulate arrays, and .filter() is one of the most versatile and commonly used. This tutorial will guide you through the basics of (...)
Harish Kumar

Vue 3: Best Practices for Efficient and Scalable Development

Vue.js is a popular JavaScript framework for building user interfaces. It has several features that enhance the development process and performance of applications. This guide (...)
Harish Kumar

JavaScript's Array .forEach() Method Explained: Tips, Tricks, and Examples

The array .forEach() method is one of the most powerful tools in JavaScript, used for executing a provided function once upon an array element. Common applications involve iterating (...)
Harish Kumar

Mastering JavaScript Performance: Techniques, Patterns, and Best Practices

JavaScript is the backbone of modern web applications, providing the interactivity and dynamic behavior that users have come to expect. However, as applications become more complex, (...)
Harish Kumar

React State Management: `useState` Hook vs. Class `setState()`

React provides two primary ways to manage state in components: the useState Hook for functional components and setState() along with this.state for class components. Both methods (...)
Harish Kumar

Mastering the `` Method in JavaScript

The method in JavaScript is a powerful and versatile function used to create a new array by applying a specified function to each element of the original array. It’s (...)
Harish Kumar