ESLintrc 생성기

다음

이 생성기는 브라우저 또는 Node 환경, TypeScript 지원, React 지원이라는 네 가지 선택으로 바로 쓸 수 있는 .eslintrc.json 설정을 만듭니다. eslint:recommended와 선택에 맞는 TypeScript 또는 React 플러그인, 그리고 합리적인 규칙 오버라이드 몇 가지를 조합하므로 결과를 그대로 프로젝트에 붙여넣으면 됩니다.

ESLint 설정을 생성하는 방법

  1. 1

    환경 선택

    코드가 브라우저, Node.js, 또는 둘 다에서 실행되는지 선택합니다. 생성기가 해당 `env` 항목과 `es2022`를 설정합니다.

  2. 2

    TypeScript 활성화

    TypeScript를 체크하면 생성기가 `@typescript-eslint/parser`와 권장 TypeScript 플러그인을 추가합니다.

  3. 3

    React 활성화

    React를 체크하면 생성기가 권장 프리셋이 포함된 `eslint-plugin-react`를 추가합니다.

  4. 4

    생성

    버튼을 클릭하면 읽기 쉽게 정렬된 JSON으로 설정이 만들어집니다.

  5. 5

    프로젝트에 복사

    결과를 `.eslintrc.json`에 붙여넣고 설정이 참조하는 플러그인을 설치합니다.

생성된 설정의 내용

생성기는 항상 eslint:recommended에서 시작하여 선택에 해당하는 항목만 추가합니다.

  • browser 및/또는 node가 있는 env, 그리고 es2022
  • TypeScript가 켜져 있으면 @typescript-eslint/parserplugin:@typescript-eslint/recommended
  • React가 켜져 있으면 plugin:react/recommended
  • warn으로 설정된 no-consoleno-unused-vars

출력은 기존 .eslintrc.json 형태의 단순한 JSON 객체로, 붙여넣고 나만의 규칙으로 확장할 수 있습니다.

플랫 설정 vs 레거시

ESLint 9는 .eslintrc.* 형식을 폐기하고 플랫 설정(eslint.config.js)을 권장합니다. 주요 차이:

항목 레거시 (.eslintrc) 플랫 (eslint.config.js)
형식 JSON, YAML 또는 CommonJS ESM 또는 CommonJS JavaScript 모듈
상속 extends: ["plugin:react/recommended"] 배열로 스프레드: ...reactPlugin.configs.recommended
오버라이드 글롭 패턴을 쓴 overrides 배열 내보낸 배열의 여러 오브젝트
전역 변수 env: { browser: true } 명시적 import가 있는 languageOptions.globals
무시 .eslintignore 파일 설정 배열의 ignores 필드

새 프로젝트는 플랫 설정을 써야 합니다. 기존 프로젝트는 10.x 라인까지 레거시를 유지할 수 있지만 마이그레이션을 권장합니다.

플러그인 생태계

일반적인 React/TS 프로젝트 플러그인:

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier

적당히 의견이 강한 설정 하나에 여섯 개 패키지입니다. 생성기는 선택한 것만 추가하므로 설정이 참조하는 것만 설치하면 됩니다.

Prettier 공존

Prettier는 포맷을, ESLint는 포맷 이외의 정확성과 스타일을 담당합니다. 충돌을 피하려면:

  1. eslint-config-prettier를 설치하고 extends/config의 마지막 항목으로 추가하세요.
  2. 이것은 Prettier 출력과 충돌하는 모든 ESLint 규칙을 끕니다.
  3. Prettier를 별도로 실행하세요(에디터 저장 시, pre-commit 훅, CI에서).

새 프로젝트에서는 eslint-plugin-prettier를 쓰지 마세요. ESLint 안에서 Prettier를 실행해 ESLint를 느리게 만듭니다. 두 도구를 분리하세요.

규칙 조정 팁

  • 느슨하게 시작해 점점 조이세요. 에러보다 경고를 먼저 켜세요.
  • 테스트용 오버라이드. 테스트 파일은 종종 no-unused-expressions 완화와 Jest 글로벌이 필요합니다.
  • 스크립트용 오버라이드. 빌드 스크립트는 env: node를 전역으로 추가하지 않고도 Node 글로벌이 필요할 수 있습니다.
  • 오버라이드를 문서화하세요. 모든 규칙 오버라이드에는 이유를 설명하는 주석이 필요합니다.

에디터에 맞는 설정

VS Code는 ESLint 확장이 설치·설정되어 있어야 합니다. 저장 시 자동 수정을 위해 워크스페이스 설정에 다음을 추가하세요:

{
  "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}

자주 묻는 질문

새 프로젝트는 플랫 설정(eslint.config.js)입니다. 이 생성기는 기존 .eslintrc.json 형식을 출력하며, ESLint는 레거시 모드에서 이 형식을 기본적으로 읽습니다. 나중에 마이그레이션할 때 무엇이 바뀌는지는 위의 비교표를 참고하세요.

TypeScript를 쓴다면 네. @typescript-eslint/parser@typescript-eslint/eslint-plugin이 TypeScript 인식 린팅을 가능하게 합니다. (구문뿐 아니라) 타입 인식 규칙을 쓰려면 파서에 project: './tsconfig.json'도 설정하세요.

대개 CI에 dev 의존성이 빠졌기 때문입니다. @typescript-eslint/*, 플러그인, ESLint 버전이 로컬과 CI에서 일치하는지 확인하세요. CI에서는 록파일을 존중하도록 npm install이 아닌 npm ci를 쓰세요.

아니요. 선택 내용은 설정을 생성하는 데만 사용되며 저장되지 않고 제3자와 공유되지도 않습니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다