"매 ESLint stylistic rule 을 모두 off". 매 Prettier 와 충돌하는 ESLint built-in/plugin rule 을 비활성화 — 매 두 tool 이 같은 줄을 두고 다투지 않게. 2026 ESLint 9 flat config 의 표준 prelude.
매 핵심
매 동작 원리
매 단일 module export — flat config array 의 마지막 entry 로 spread.
매 Prettier 가 처리하는 styling rule (indent, quotes, comma-dangle, semi, max-len, …) 의 0 (off) 설정.
Logic-only ESLint rule (no-unused-vars, no-undef, hooks, accessibility) 는 그대로 유지.
매 작동 layer
ESLint 의 base stylistic rules off.
@typescript-eslint stylistic rules off.
eslint-plugin-react, vue, unicorn, import 의 stylistic part off.
Logic rule 은 절대 손대지 않음.
매 응용
매 새 project 의 ESLint flat config 마지막에 prettierConfig spread.
매 legacy .eslintrc.json 의 extends 마지막에 "prettier".
Verify with eslint-config-prettier CLI: 매 leftover 충돌 detect.
💻 패턴
Flat config (ESLint 9, 2026 표준)
// eslint.config.js
importjsfrom'@eslint/js';importtseslintfrom'typescript-eslint';importreactfrom'eslint-plugin-react';importprettierfrom'eslint-config-prettier';exportdefault[js.configs.recommended,...tseslint.configs.recommended,react.configs.flat.recommended,prettier,// MUST be last — turns off conflicting stylistic rules
];
# Detect rules that still conflict with Prettier
npx eslint-config-prettier path/to/file.ts
Order matters (last wins)
exportdefault[js.configs.recommended,prettier,// ❌ 매 너무 일찍
tseslint.configs.strict,// tseslint stylistic 다시 켜짐
];// ✅ 올바른 순서
exportdefault[js.configs.recommended,tseslint.configs.strict,prettier,// last
];
Custom override (Prettier 와 같이 가는 dev rule)
exportdefault[js.configs.recommended,prettier,{rules:{// logic — Prettier 와 무관 — 매 keep
'@typescript-eslint/no-unused-vars':'error','react-hooks/exhaustive-deps':'warn',},},];
매 결정 기준
상황
Approach
Prettier + ESLint 같이 사용
항상eslint-config-prettier 적용
ESLint stylistic rule 만 사용 (Prettier X)
미적용
Stylelint 와 결합
stylelint-config-prettier 도 함께 (2026 deprecated, Prettier 3 자체 처리)
기본값: 매 Prettier 사용하는 project 의 flat config 마지막 entry 로 항상 포함.