- ESLint는 지난 7월에 앞으로 ESLint를 더 일반적인 용도의 linter로 전환하여 모든 언어에 대한 린팅 기능을 제공할 계획을 발표함
- 몇 달 동안 JavaScript 특정 부분을 추출하는 작업을 진행하였고, 이 작업의 결과로 ESLint가 이제 JSON과 Markdown 린팅을 지원하게 됨
@eslint/json
을 사용한 JSON 린팅
-
@eslint/json
플러그인은 공식적으로 지원되는 언어 플러그인
- 이 플러그인은 JSON, JSONC(주석이 포함된 JSON), JSON5에 대한 파싱을 제공
- 플러그인을 사용하려면 npm에서 설치하고 구성 파일을 업데이트해야 함
- 플러그인에는 몇 가지 내장된 규칙이 있으며, 더 많은 제안을 기다리고 있음
@eslint/markdown
을 사용한 Markdown 린팅
-
@eslint/markdown
플러그인은 eslint-plugin-markdown
의 차세대 버전으로, 공식적으로 지원되는 언어 플러그인임
- 이 플러그인은 CommonMark와 GitHub-Flavored Markdown에 대한 파싱과 규칙을 제공
- 플러그인을 사용하려면 npm에서 설치하고 구성 파일을 업데이트해야 함
- JSON 플러그인과 마찬가지로 내장된 규칙이 있으며, 더 많은 제안을 기다리고 있음
사용자 정의 규칙 작성 및 Code Explorer 사용
-
@eslint/json
과 @eslint/markdown
은 JavaScript와 마찬가지로 소스 코드를 AST로 파싱하고 AST를 순회하여 규칙을 실행
- 따라서 JavaScript와 마찬가지로 JSON과 Markdown에 대한 사용자 정의 규칙을 작성할 수 있음
- 주요 차이점은 AST 형식인데, JSON은 Momoa AST를 사용하고 Markdown은 mdast를 사용함
- 다른 AST 형식을 검사하는 데 도움이 되는 리소스가 많지 않기 때문에 Code Explorer를 출시함
- Code Explorer를 사용하면 사용자 정의 규칙을 만드는데 도움이 되도록 다양한 언어의 AST를 보고 탐색할 수 있음
언어 플러그인 작성하기
- ESLint 언어는 새로운
languages
키를 사용하여 모든 플러그인에 포함될 수 있도록 설계됨
-
@eslint/json
과 @eslint/markdown
플러그인은 JSON과 Markdown 린팅을 제공할 뿐만 아니라 언어를 만드는 방법의 예시로 제공됨
- 언어 문서를 참조하여 자신만의 언어를 만드는 방법을 알아볼 수 있음
결론
- JavaScript 이외의 언어를 린팅하는 것은 ESLint의 로드맵에 있었던 것이어서 이 이정표에 도달하게 된 것이 매우 흥분됨
- ESLint의 장기적인 목표는 웹 프로젝트에서 사용할 수 있는 모든 종류의 파일을 공식적으로 지원하는 언어 플러그인이나 커뮤니티에서 작성한 플러그인으로 린팅할 수 있도록 하는 것임
- JavaScript, JSON, Markdown로 이미 그 목표를 향해 잘 나아가고 있음