Inkonsistenter Code kostet Teams täglich Stunden: Endless Code-Review-Kommentare über fehlende Semikolons, unterschiedliche Einrückung und vergessene console.log-Statements. Claude Code löst das Problem von Grund auf — es richtet das gesamte Linting- und Formatting-Stack automatisch ein und passt es an dein Projekt an.
In diesem Guide zeigen wir, wie Claude Code ESLint, Prettier, Husky und CI/CD-Integration in einem TypeScript-Projekt in Minuten konfiguriert — mit sauberen, produktionsreifen Konfigurationen.
1. ESLint Setup mit TypeScript-Support
Mit dem neuen Flat Config Format (eslint.config.js) und @typescript-eslint v8 ist die Konfiguration deutlich übersichtlicher geworden. Claude Code kennt beide Formate und migriert bei Bedarf automatisch.
Claude Code installiert alle nötigen Pakete mit einem einzigen Befehl:
Die generierte Flat-Config-Datei sieht so aus:
import tseslint from 'typescript-eslint';
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.strictTypeChecked,
{
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
'no-console': 'warn',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/explicit-function-return-type': 'warn',
},
},
);
2. Prettier Konfiguration und Integration
Prettier beendet alle Diskussionen über Code-Style. Claude Code integriert Prettier so, dass ESLint und Prettier sich nicht in die Quere kommen — ein häufiges Problem bei manueller Konfiguration.
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 100,
"tabWidth": 2,
"arrowParens": "avoid",
"endOfLine": "lf"
}
Claude Code fügt eslint-config-prettier automatisch als letzten Eintrag in die ESLint-Config ein — so werden alle ESLint-Regeln, die Prettier-Formatierung betreffen, deaktiviert:
export default tseslint.config(
// ... andere Configs
prettier, // MUSS als letztes stehen!
);
Package.json-Scripts werden ebenfalls automatisch ergänzt:
"lint": "eslint src --ext .ts,.tsx",
"lint:fix": "eslint src --ext .ts,.tsx --fix",
"format": "prettier --write src/**/*.{ts,tsx,json,css}",
"format:check": "prettier --check src/**/*.{ts,tsx,json,css}"
}
3. Husky + lint-staged: Pre-Commit Hooks
Pre-Commit Hooks stellen sicher, dass nie unformatierter oder fehlerhafter Code in das Repository gelangt. Claude Code richtet Husky v10 und lint-staged in Kombination ein.
npx husky init
npx lint-staged
"*.{ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,css,md}": [
"prettier --write"
]
}
Commit-Message Validierung mit commitlint
Claude Code kann optional auch commitlint einrichten, das Conventional Commits erzwingt:
npx --no commitlint --edit $1
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor',
'test', 'chore', 'perf'
]],
},
};
4. VS Code Integration: Format on Save
Claude Code erstellt automatisch die VS Code Workspace-Einstellungen für alle Entwickler im Team:
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": ["javascript", "typescript", "typescriptreact"],
"typescript.tsdk": "node_modules/typescript/lib",
"files.eol": "\n"
}
"recommendations": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"bradlc.vscode-tailwindcss"
]
}
Wenn ein neues Teammitglied das Repository öffnet, schlägt VS Code automatisch die Installation der empfohlenen Extensions vor. Format on Save und ESLint-Auto-Fix sind sofort aktiv — ohne manuelle Konfiguration.
5. Custom ESLint Rules erstellen
Claude Code kann projektspezifische ESLint-Regeln generieren. Beispiel: Eine Regel die verhindert, dass sensible Daten in Logs ausgegeben werden.
meta: {
type: 'problem',
docs: { description: 'Verhindert das Loggen sensibler Felder' },
schema: [{ type: 'object', properties: { fields: { type: 'array' } } }],
},
create(context) {
const sensitiveFields = context.options[0]?.fields ?? [
'password', 'token', 'secret', 'apiKey',
];
return {
CallExpression(node) {
if (node.callee.object?.name === 'console') {
node.arguments.forEach(arg => {
if (arg.type === 'MemberExpression' &&
sensitiveFields.includes(arg.property.name)) {
context.report({ node, message: 'Sensibles Feld darf nicht geloggt werden!' });
}
});
}
},
};
},
};
6. CI/CD Integration: ESLint in GitHub Actions
Claude Code generiert GitHub Actions Workflows die ESLint und Prettier als Pflicht-Checks vor dem Merge einrichten. Kein PR kann gemergt werden wenn Linting fehlschlägt.
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
lint:
name: ESLint + Prettier Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '22', cache: 'npm' }
- run: npm ci
- name: ESLint
run: npm run lint
- name: Prettier Format Check
run: npm run format:check
- name: TypeScript Type Check
run: npx tsc --noEmit
ESLint Ergebnisse als PR-Annotations
Mit dem reviewdog-Action werden ESLint-Fehler direkt als Kommentare in den Pull Request geschrieben:
uses: reviewdog/action-eslint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
eslint_flags: 'src --ext .ts,.tsx'
Caching für schnelle CI-Läufe
uses: actions/cache@v4
with:
path: .eslintcache
key: ${{ runner.os }}-eslint-${{ hashFiles('eslint.config.js') }}
Fazit: Claude Code als Code-Quality-Autopilot
Was früher Stunden kostete — Recherche, Installation, Konfiguration, Debugging von Konflikten zwischen ESLint und Prettier — erledigt Claude Code in unter 5 Minuten. Und das Ergebnis ist nicht irgendeine generische Konfiguration, sondern eine auf dein Projekt, dein Framework und dein Team zugeschnittene Lösung.
- ESLint + TypeScript-ESLint: Strict Type Checking, Flat Config, Framework-Plugins
- Prettier: Konfliktfrei integriert, Formatierung nach Team-Standard
- Husky + lint-staged: Pre-Commit Hooks die wirklich schnell sind
- VS Code: Format on Save, Auto-Fix, Extension-Empfehlungen
- GitHub Actions: Linting als Merge-Blocker, PR-Annotations via reviewdog
Das Ergebnis: Kein Commit ohne sauberen Code. Kein Merge ohne grünes CI. Keine endlosen Code-Review-Diskussionen über Style-Fragen.
Claude Code 7-Tage Trial — kostenlos starten
Konfiguriere dein gesamtes Code-Quality-Stack in Minuten. ESLint, Prettier, Husky, CI/CD — Claude Code macht es fertig, während du weiterarbeitest.
Jetzt Trial starten →