Skip to main content

Automatic Formatting and Linting with Husky + lint-staged

Principle

This configuration uses Husky and lint-staged to run checks and fixes automatically before each commit.


What it does

For frontend files:

  • ESLint: automatically fixes formatting issues and some best-practice problems.
  • Prettier: automatically formats code (indentation, spacing, etc.).

For backend files:

  • Prettier only: applies automatic formatting (no ESLint on backend).

Behavior

Automatic formatting

  • Before each commit, code is automatically formatted via Prettier (and ESLint for frontend).

Commit blocking

  • Commits are blocked if ESLint finds non-fixable errors (frontend only).
    • These may include issues related to:
      • Best practices
      • Security
      • Accessibility

Practical notes

  • No manual formatting required.
  • git commit works as usual.
  • You may encounter linter errors that need manual fixes.

If a commit is blocked

Run:

git commit -m "fix: message" --no-verify

Install dependencies

After pulling updates, install dependencies:

npm install

Update pre-commit configs

Pre-commit config: lint-staged in the root package.json

ESLint config: eslint.config.js at project root

Prettier config: prettier.config.js at project root