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.
- TypeScript support with type-checked rules
- Stylistic rules via
@stylistic/eslint-plugin - ESLint 9 Flat Config format
-
- Modular: Import only what you need
npm install --save-dev @moritz-grimm/eslint-configor if you prefer Bun
bun install @moritz-grimm/eslint-config --dev- 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 typescriptThis config is modular. You can import everything or only specific parts.
Import all rules (base + stylistic + TypeScript):
import eslintConfig from "@moritz-grimm/eslint-config";
export default [
...eslintConfig,
];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,
];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 issuesFor 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,
anywarnings, promise handling - Code Style: 4-space indentation, semicolons, double quotes, 1TBS brace style, trailing commas