최근 수정 시각 : 2026-02-20 01:26:07

ESLint

<colbgcolor=#000,#000><colcolor=#fff,#fff> ESLint
<nopad> 파일:eslint_logo_color.svg
종류 JavaScript 린터
최초 개발자
개발
출시 yyyy년 mm월 dd일
안정 버전 v10.0.0 (2026년 2월 6일)
개발 언어 JavaScript
라이선스 MIT 라이선스
링크 파일:홈페이지 아이콘.svg 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg X
1. 개요2. 역사3. 규칙4. 개발환경 연동5. 파생 소프트웨어6. 기타

1. 개요

JavaScript 및 웹 개발 환경용 린터 구현체.

2. 역사

2026년 2월 6일 10.0.0 버전이 공개되었다.# 다만 현재 eslint-plugin-react#3977 v10 지원이 더딘 플러그인이 많아 마이그레이션에 주의할 필요가 있다. 특히 jiti 종속성 업데이트가 이루어져,#19765# peer deps로 구버전이 설치되어 있다면 실행 시 크래시가 날 수 있다.

3. 규칙

개별 린트 규칙으로, ESLint 설정의 가장 기본적인 요소이다.

각 규칙은 고유한 문자열 규칙명이 있으며, 이를 통해 특정 규칙을 끄거나 심각도를 커스터마이징하는 것이 가능하다. 소스 코드 내 특정 영역만 해당 규칙의 경고를 쓰고 싶다면
#!syntax javascript
// eslint-disable @플러그인명/규칙명1, @플러그인명/규칙명2

// eslint-disable-line @플러그인명/규칙명1, @플러그인명/규칙명2

// eslint-disable-next-line @플러그인명/규칙명1, @플러그인명/규칙명2
와 같이 주석을 통해 켜고 끌 수 있다. -disable을 하면 해당 파일 전체를 건너뛰며, -disable-line-disable-next-line은 각각 현재 또는 다음 줄 코드만 해당 규칙의 검사를 건너뛴다.

특정 규칙의 검사 자체를 아예 의도하지 않았다면 전역 설정 파일의 rules 객체를 수정해 특정 규칙을 아예 꺼버리거나 심각도를 설정하는 것이 가능하다. 각 ESLint 규칙이 가질 수 있는 심각도는 총 3단계로, 일반 린트 에러(2), 단순 경고(1), 문제 없음(0)이다. 즉 0으로 설정하면 해당 규칙이 꺼지게 된다.

이런 다양한 린트 규칙들을 사전 설정하여 재사용할 수 있게 ESLint 플러그인 형태로 배포할 수 있다. v9 이후 flat config의 경우 각 플러그인을 임포트해서 설정에 넣어주면 된다. 꼭 플러그인이 아니더라도 완성된 설정 자체를 npm 패키지로 말아서 배포하는 것도 가능하다. 실제로 ruleset을 설정하기 귀찮을 때 유명 기업의 코딩 스타일이나 잘 알려진 ruleset을 자주 사용하게 된다.

4. 개발환경 연동

  • Visual Studio Code - microsoft/vscode-eslintdbaeumer.vscode-eslint 플러그인이 존재한다. 해당 플러그인의 경우 lint가 개별 파일 단위로만 나타나는데, problems 탭에서 전체 워크스페이스 대상으로 모든 lint를 확인하는 것이 현재까지도 꽤나 불편하다.#91 현재 가능한 방법으로는 eslint.lintTask를 설정하고 vscode task로 돌리는 방법이 있는데, eslint resolve 관련 설정을 못하다가 2025년 말쯤 추가되었다.#2081
  • JetBrains - JS/TS 언어 확장에 ESLint 연동 기능까지 내장되어 있다.# 때문에 WebStorm 등 해당 확장이 번들된 IDE 제품의 경우 역시 내장 지원된다.#

5. 파생 소프트웨어

6. 기타