| <colbgcolor=#000,#000><colcolor=#fff,#fff> ESLint | |
| <nopad> | |
| 종류 | JavaScript 린터 |
| 최초 개발자 | |
| 개발 | |
| 출시 | yyyy년 mm월 dd일 |
| 안정 버전 | v10.0.0 (2026년 2월 6일) |
| 개발 언어 | JavaScript |
| 라이선스 | MIT 라이선스 |
| 링크 | |
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-eslint
dbaeumer.vscode-eslint플러그인이 존재한다. 해당 플러그인의 경우 lint가 개별 파일 단위로만 나타나는데, problems 탭에서 전체 워크스페이스 대상으로 모든 lint를 확인하는 것이 현재까지도 꽤나 불편하다.#91 현재 가능한 방법으로는eslint.lintTask를 설정하고 vscode task로 돌리는 방법이 있는데, eslint resolve 관련 설정을 못하다가 2025년 말쯤 추가되었다.#2081 - JetBrains - JS/TS 언어 확장에 ESLint 연동 기능까지 내장되어 있다.# 때문에 WebStorm 등 해당 확장이 번들된 IDE 제품의 경우 역시 내장 지원된다.#
5. 파생 소프트웨어
- xo - awesome의 창시자인 sindresorhus가 개발한 래퍼. 내부적으로는 unicorn 등 플러그인을 자주 사용한다.
sindresorhus 특유의 광기가 드러나는 게 특징#612