11P by xguru 2달전 | favorite | 댓글 1개
  • 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로 이미 그 목표를 향해 잘 나아가고 있음

마크다운 좋네요