Skip to content

moritz-grimm/eslint-config

Repository files navigation

eslint-config

My preferred ESLint config for JavaScript and TypeScript projects.

Disclaimer: This config is built for my personal use. There might be rough edges or opinionated choices that don't fit your workflow. Feel free to use it, but adjust it to your workflow.


Features

  • TypeScript support with type-checked rules
  • Stylistic rules via @stylistic/eslint-plugin
  • ESLint 9 Flat Config format
    • Modular: Import only what you need

Installation

npm install --save-dev @moritz-grimm/eslint-config

or if you prefer Bun

bun install @moritz-grimm/eslint-config --dev

Requirements

  • Node.js: >=18.0.0
  • ESLint: >=9.0.0
  • TypeScript: >=5.0.0 (only if linting TypeScript files)

If you don't have ESLint or TypeScript installed yet:

npm install --save-dev eslint typescript

Configuration

This config is modular. You can import everything or only specific parts.

Option 1: Full Config (Recommended)

Import all rules (base + stylistic + TypeScript):

import eslintConfig from "@moritz-grimm/eslint-config";

export default [
    ...eslintConfig,
];

Option 2: Modular Import

Pick only what you need:

Base rules (core JavaScript/TypeScript linting):

import eslintConfig from "@moritz-grimm/eslint-config/base";

export default [
    ...eslintConfig,
];

Stylistic rules (code formatting):

import eslintConfig from "@moritz-grimm/eslint-config/stylistic";

export default [
    ...eslintConfig,
];

TypeScript rules (type-checked linting):

import eslintConfig from "@moritz-grimm/eslint-config/typescript";

export default [
    ...eslintConfig,
];

You can also combine multiple modules:

import baseConfig from "@moritz-grimm/eslint-config/base";
import stylisticConfig from "@moritz-grimm/eslint-config/stylistic";

export default [
    ...baseConfig,
    ...stylisticConfig,
];

Usage

Add these scripts to your package.json:

{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}

Then run:

npm run lint        # Check for linting issues
npm run lint:fix    # Auto-fix issues

What's Included?

For a complete list of all rules and their configuration, see RULES.md.

Quick overview:

  • Code Quality: Strict equality, no unreachable code, prefer const, no duplicate imports
  • TypeScript: Type-checked linting, any warnings, promise handling
  • Code Style: 4-space indentation, semicolons, double quotes, 1TBS brace style, trailing commas


License

MIT

Packages

 
 
 

Contributors