Skip to content

Oxlint

Oxlint (/oʊ-ɛks-lɪnt/)는 Oxc 컴파일러 스택 기반의 고성능 린터로, 자바스크립트 및 타입스크립트를 위한 것입니다.

대규모 환경 최적화

Oxlint은 대규모 저장소와 CI 환경에서 최적화되어 설계되었습니다. 구조적 성능 저하 요소를 제거함으로써, ESLint에서 발생하는 성능 한계를 극복합니다.

우리의 벤치마크 결과에 따르면, Oxlint은 ESLint보다 50~100배 더 빠릅니다.

정확성 중심의 기본 설정

초기부터 사용 가능하며, 기본적으로 신호 강도가 높은 정확성 검사를 우선시합니다. 이러한 검사는 잘못된, 불안전하거나 의미 없는 코드를 발견해 주므로, 팀이 과도한 경고 없이 바로 Oxlint을 도입할 수 있습니다.

요구사항이 변화함에 따라 추가 규칙을 단계적으로 활성화할 수 있습니다.

광범위하고 점점 확장되는 규칙 세트

Oxlint은 690개 이상의 규칙을 포함하고 있으며, 대부분의 팀이 이미 사용하는 플러그인과도 완전히 호환됩니다. 포함된 항목:

  • ESLint 핵심 규칙
  • 타입스크립트 규칙
  • 리액트, 젝스트, 유니콘, jsx-a11y 등의 인기 플러그인
  • ESLint 플러그인 생태계와 호환되는 커스텀 자바스크립트 플러그인

이러한 포괄적인 커버리지 덕분에, 규칙 커버리지 손실 없이 마이그레이션을 쉽게 수행할 수 있습니다.

타입 인식 린팅

Oxlint은 타입스크립트 컴파일러의 네이티브 고언어 포트(tsgo, 즉 타입스크립트 7)를 활용하여, 완전한 타입스크립트 호환성과 타입스크립트 자체에서 기대하는 동일한 타입 시스템 동작을 제공합니다.

이는 타입이 필요한 임무 중심 체크(예: 떠 있는 프로미스 탐지)를 가능하게 합니다.

반면, Biome의 접근 방식은 타입스크립트 컴파일러에 의존하지 않고 자체 타입 추론을 구현하는 것으로, 여전히 커버리지 개선이 필요하다고 언급하고 있습니다.

참고: 타입 인식 린팅

다중 파일 분석 지원

Oxlint은 다중 파일 분석을 첫 번째 기능으로 제공합니다.

활성화 시, Oxlint은 프로젝트 전체 모듈 그래프를 구축하고, 규칙 간에 파싱 및 해석 정보를 공유합니다. 이는 파일 간 종속성에 의존하는 체크를 향상시키며, ESLint에서 자주 보이는 import/no-cycle 같은 규칙의 성능 급락을 방지하는 데 도움이 됩니다.

참고: 다중 파일 분석

AI 친화적인 진단 정보

Oxlint의 진단 정보는 인간이 이해하기 쉬울 뿐만 아니라, 머신이 작동할 수도 있도록 설계되었습니다.

명확한 메시지 외에도, 정밀한 범위 및 관련 맥락 데이터와 같은 구조화된 정보를 포함합니다. 이를 통해 인공지능이 문제를 정확히 이해하고 신뢰할 수 있게 수정을 적용할 수 있습니다.

신뢰성 최우선

실패를 허용할 수 없는 워크플로우를 위해 설계된 Oxlint입니다.

충돌은 최우선 버그로 취급됩니다. 성능 저하 역시 버그로 간주됩니다.

특히 CI 및 대규모 모노레포 환경에서 안정성과 처리량이 항상 최우선입니다.

시작하기

권장 설정은 개발 의존성으로서 Oxlint을 설치하고 스크립트를 추가하는 것입니다.

sh
pnpm add -D oxlint

package.json에 스크립트를 추가하세요:

package.json
json
{
  "scripts": {
    "lint": "oxlint",
    "lint:fix": "oxlint --fix"
  }
}

다음 단계:

도입 경로

TIP

ESLint에서 마이그레이션 중이라면, “ESLint에서 마이그레이션” 페이지를 참조하여 자세한 지침을 확인하세요.

저장소에 맞는 방법을 선택하세요:

  • ESLint 대체 ( 대부분의 프로젝트에 권장). Oxlint을 주요 린터로 사용합니다.
    • @oxlint/migrate 같은 도구를 사용해 기존 ESLint 설정을 마이그레이션합니다.
  • 단계적 마이그레이션 (대규모 저장소에 권장). 먼저 Oxlint을 실행한 후, 겹치는 규칙을 비활성화한 상태에서 ESLint을 실행합니다. 이 방식은 마이그레이션 중에도 CI 속도를 유지합니다.
    • 동시에 둘 다 실행하면서 겹치는 ESLint 규칙을 비활성화하기 위해 eslint-plugin-oxlint를 사용합니다.
    • 이 접근 방식에서도 @oxlint/migrate를 사용하는 것이 가능하며, 권장됩니다.

Oxlint가 지원하는 기능

Oxlint는 다음을 지원합니다:

  • 자바스크립트 및 타입스크립트 (.js, .mjs, .cjs, .ts, .mts, .cts)
  • JSX 및 TSX (.jsx, .tsx)
  • <script> 블록만을 린팅하는 프레임워크 파일 (.vue, .svelte, .astro)

기능

Oxlint을 사용하는 프로젝트

아래와 같은 인기 있는 프로젝트들이 실제 운영 환경에서 Oxlint을 사용하고 있습니다:

마이그레이션

참고 자료