JavaScript와 TypeScript용 규칙 300개 이상과 CSS, HTML, JSON, Markdown, YAML용 규칙도 제공하는 ESLint 플러그인입니다.
xojs/xo
엄격하고 일관된 기본 규칙과 내장 코드 스타일을 제공하는, 설정 없이 사용하는 JavaScript/TypeScript linter입니다.
- 스타
- 7,996
- 포크
- 308
- 열린 이슈
- 3
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
XO는 ESLint를 엄선된 기본 규칙으로 감싼 JavaScript 및 TypeScript용 CLI linter입니다. 프로젝트에서 실행하면 파일 경로를 일일이 지정하거나 ESLint 설정을 작성할 필요 없이 JS, TS, 프레임워크 파일은 물론 HTML, Markdown, JSON, CSS도 lint합니다. 코드 스타일을 두고 pull request에서 논쟁하는 대신, 도구가 일관된 규칙을 적용하길 원하는 팀을 위한 도구입니다.
기본 스타일은 탭 들여쓰기, 세미콜론, 작은따옴표, 후행 쉼표를 사용하며, 플래그로 공백 들여쓰기나 세미콜론 없는 스타일을 선택할 수 있습니다. unicorn, import-x, ava, n 등의 번들된 ESLint 플러그인이 추가 검사를 제공합니다. xo.config.js 또는 xo.config.ts 파일에서 설정을 사용자 지정할 수 있으며, 이 파일은 ESLint의 flat config 형식을 따릅니다. 실행할 때마다 결과를 캐시하고, `--fix`를 사용하면 자동으로 수정합니다.
XO를 사용하려면 프로젝트에서 ES modules를 사용해야 합니다. Astro, React, Svelte, Vue용 프레임워크별 lint 기능은 별도의 ESLint 플러그인으로 제공되며, 선택 사항인 Prettier 모드는 코드를 포맷하거나 충돌하는 규칙을 비활성화합니다.
핵심 기능
- 01JS, TS, HTML, Markdown, JSON, CSS 파일을 설정 없이 lint합니다.
- 02TypeScript 지원이 내장되어 있으며 unicorn, import-x 등의 ESLint 플러그인이 포함되어 있습니다.
- 03`--fix`로 자동 수정하고, `--open`으로 오류가 있는 파일을 에디터에서 열 수 있습니다.
- 04규칙 설정을 변경하지 않고 들여쓰기와 세미콜론 스타일을 간단히 지정할 수 있습니다.
- 05선택 사항인 Prettier 포맷 기능을 사용하거나, Prettier와 충돌하는 규칙을 비활성화하는 호환 모드를 사용할 수 있습니다.
- 06eslint-suppressions.json 파일을 통한 일괄 억제를 지원합니다.
활용 사례
- ESLint 설정을 작성하지 않고 팀 전체에 일관된 코드 스타일을 적용할 때.
- 명령 하나로 새 JavaScript 또는 TypeScript 프로젝트에 linter를 추가할 때.
- 프레임워크별 플러그인을 추가해 Vue, Svelte, Astro 또는 React 코드베이스를 lint할 때.
- suppressions를 활용해 기존 대규모 코드베이스에 더 엄격한 규칙을 단계적으로 도입할 때.
빠른 시작
- 1
프로젝트에 XO를 로컬로 설치하세요
npm install xo --save-dev - 2
XO를 실행해 프로젝트를 lint하세요
npx xo
사용 전 알아둘 점
- XO를 사용하려면 프로젝트가 ESM이어야 합니다.
- XO는 ESLint를 감싼 도구이므로, 내장 규칙 관련 문제는 ESLint 프로젝트에 문의하세요.
- 별도로 설정하지 않으면 탭, 작은따옴표, 세미콜론을 사용하는 독자적인 코드 스타일을 적용합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- xo은(는) 무엇인가요?
- 엄격하고 일관된 기본 규칙과 내장 코드 스타일을 제공하는, 설정 없이 사용하는 JavaScript/TypeScript linter입니다. XO는 ESLint를 엄선된 기본 규칙으로 감싼 JavaScript 및 TypeScript용 CLI linter입니다. 프로젝트에서 실행하면 파일 경로를 일일이 지정하거나 ESLint 설정을 작성할 필요 없이 JS, TS, 프레임워크 파일은 물론 HTML, Markdown, JSON, CSS도 lint합니다. 코드 스타일을 두고 pull request에서 논쟁하는 대신, 도구가 일관된 규칙을 적용하길 원하는 팀을 위한 도구입니다.
- xo은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- xo은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- xo은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. xo의 마지막 커밋은 2026년 9월 18일입니다.
- xo은(는) 어디에 사용할 수 있나요?
- ESLint 설정을 작성하지 않고 팀 전체에 일관된 코드 스타일을 적용할 때. 명령 하나로 새 JavaScript 또는 TypeScript 프로젝트에 linter를 추가할 때. 프레임워크별 플러그인을 추가해 Vue, Svelte, Astro 또는 React 코드베이스를 lint할 때. suppressions를 활용해 기존 대규모 코드베이스에 더 엄격한 규칙을 단계적으로 도입할 때.
- xo는 어떻게 설치하나요?
- 프로젝트에 XO를 로컬로 설치하세요: npm install xo --save-dev XO를 실행해 프로젝트를 lint하세요: npx xo
- xo은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/xojs/xo
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
ESLint가 TypeScript 코드를 파싱하고 린트할 수 있도록 파서, 규칙, 플러그인 패키지를 제공하는 모노레포입니다.
clang-format의 레이아웃 알고리즘을 바탕으로 설정한 스타일에 맞게 Python 소스 파일을 재구성하는 코드 포매터입니다.
여러 프로젝트의 공통 설정을 검사하고 설정 파일을 자동으로 수정하는 CLI 도구이자 flake8 플러그인입니다.
JavaScript와 TypeScript를 위한 무설정 린터 및 포매터로, 명령 하나로 Biome, ESLint 또는 Oxlint에 프리셋 규칙을 적용합니다.
ECMAScript/JavaScript 코드의 문제 패턴을 찾아내고 많은 항목을 자동으로 수정하는 플러그인형 린터입니다.