JavaScript > Testing and Debugging > Debugging Tools > Code formatting with Prettier

Basic Code Formatting with Prettier

This snippet demonstrates how to use Prettier, a popular code formatter, to automatically format your JavaScript code. We'll cover installation, basic usage, and configuration.

Installation

First, you need to install Prettier as a dev dependency in your project. This command uses npm (Node Package Manager) to install Prettier. The `--save-dev` flag ensures that Prettier is added to your `devDependencies` in your `package.json` file, indicating it's a tool used during development but not required for production.

npm install --save-dev prettier

Basic Usage

Prettier can be used via the command line. For example, to format a file named `index.js`, you'd run `npx prettier --write index.js`. The `--write` flag tells Prettier to overwrite the file with the formatted code. The example shows how Prettier automatically adds spacing, removes unnecessary spaces, and ensures consistent formatting.

// Before formatting:
function myFunction  (  a ,b){
return a+ b;}

// After formatting:
function myFunction(a, b) {
  return a + b;
}

Configuration

Prettier can be configured using a `.prettierrc.json` file (or `.prettierrc.js`, `.prettierrc.yaml`, etc.). This file allows you to customize Prettier's formatting rules to suit your preferences. This example configures Prettier to: * `semi`: Remove semicolons at the end of statements. * `singleQuote`: Use single quotes instead of double quotes. * `trailingComma`: Add trailing commas wherever possible (helps with version control). * `printWidth`: Set the line length to 80 characters.

// .prettierrc.json
{
  "semi": false,
  "singleQuote": true,
  "trailingComma": "all",
  "printWidth": 80
}

Integrating with VS Code

Many IDEs, like VS Code, have Prettier extensions. These extensions can automatically format your code on save, making code formatting seamless. Install the Prettier VS Code extension, and then configure VS Code to format on save (typically through your VS Code settings or `settings.json` file).

Real-Life Use Case

In a large project with multiple developers, consistent code formatting is crucial for readability and maintainability. Prettier enforces a uniform style across the codebase, reducing debates about formatting and making it easier to understand and collaborate on the code. Imagine a team of five developers working on different features simultaneously. Without Prettier, each developer might use their preferred coding style, leading to inconsistent indentation, spacing, and quoting. With Prettier, everyone adheres to the same set of rules, creating a unified and professional-looking codebase.

Best Practices

Commit your `.prettierrc.json` file to your repository so that all developers on the project use the same formatting rules. Consider using Prettier in combination with ESLint for linting and code style enforcement. Use Prettier's `--check` option in your CI/CD pipeline to ensure that all code meets the formatting standards before deployment.

Interview Tip

Be prepared to discuss the benefits of using code formatters like Prettier in a team environment. Explain how it improves code consistency, reduces code review time, and helps prevent style-related conflicts among developers.

Alternatives

While Prettier is a leading code formatter, alternatives include ESLint's built-in formatting capabilities (using the `--fix` option) and other formatters like StandardJS. ESLint offers more granular control over code style rules, while Prettier focuses solely on formatting.

Pros

Automatic code formatting, ensures consistent code style across projects, reduces code review time, easy to configure and integrate into existing workflows, supports various languages and frameworks.

Cons

Can be opinionated and limit customization options, may require adjustments to existing ESLint configurations to avoid conflicts, can slow down development workflow if not properly configured.

FAQ

  • How do I ignore certain files or directories from being formatted by Prettier?

    Create a `.prettierignore` file in the root of your project, similar to a `.gitignore` file. List the files or directories you want Prettier to ignore, each on a new line. For example: node_modules/ dist/ *.lock
  • Can I use Prettier with ESLint?

    Yes, you can use Prettier with ESLint. Install the `eslint-plugin-prettier` and `eslint-config-prettier` packages. Configure ESLint to use the `prettier` plugin and extend the `prettier/recommended` configuration. This will tell ESLint to run Prettier as a linting rule and disable any ESLint rules that conflict with Prettier.
  • How to format code automatically when saving in VS Code?

    In VS Code, go to File > Preferences > Settings (or press Ctrl+,). Search for 'format on save' and check the box. Make sure the default formatter is Prettier. You may need to install the Prettier VS Code extension first.