为 ESLint 增加 300 多条额外规则,覆盖 JavaScript 与 TypeScript,部分规则还支持 CSS、HTML、JSON、Markdown 和 YAML。
xojs/xo
开箱即用的 JavaScript/TypeScript 代码检查工具,基于 ESLint 封装,内置严格且统一的默认风格。
- Star
- 7,995
- Fork
- 309
- 未关闭 Issue
- 3
- 最近提交
- 2个月前
这是什么?
XO 是一个面向 JavaScript 和 TypeScript 的命令行代码检查工具,基于 ESLint 封装,并预置了一套有主见的默认规则。在项目中直接运行即可检查 JS、TS 及 Vue、Svelte、Astro 文件,也支持 HTML、Markdown、JSON 和 CSS,无需手动指定文件路径,也不必自行维护 ESLint 配置。它适合希望在代码评审中不再争论代码风格、由工具统一执行规则的团队。
默认风格包括制表符缩进、分号、单引号和多行尾随逗号,可通过参数改为空格缩进或无分号风格。内置的 unicorn、import-x、ava、n 等 ESLint 插件提供更多检查。配置可写在 xo.config.js 或 xo.config.ts 中,采用 ESLint 的 flat config 格式。工具会在两次运行之间缓存结果,并可通过 `--fix` 自动修复部分问题。
使用 XO 要求项目采用 ES 模块。Astro、React、Svelte、Vue 的检查需要额外安装对应插件,另外可选择 Prettier 模式,直接格式化代码或关闭与 Prettier 冲突的规则。
核心功能
- 01零配置检查 JS、TS、HTML、Markdown、JSON 和 CSS 文件。
- 02默认支持 TypeScript,并内置 unicorn、import-x 等 ESLint 插件。
- 03通过 `--fix` 自动修复问题,通过 `--open` 在编辑器中打开出错文件。
- 04无需修改规则即可设置缩进和分号风格。
- 05可选 Prettier 格式化,或使用 compat 模式关闭与 Prettier 冲突的规则。
- 06支持通过 eslint-suppressions.json 批量忽略已有违规,便于逐步收紧规则。
适用场景
- 团队无需自行编写 ESLint 配置,即可统一代码风格。
- 为新的 JavaScript 或 TypeScript 项目一条命令接入代码检查。
- 在 Vue、Svelte、Astro 或 React 项目中配合对应框架插件使用。
- 在大型现有代码库中借助忽略文件逐步引入更严格的规则。
快速上手
- 1
在项目中本地安装 XO
npm install xo --save-dev - 2
运行 XO 检查项目代码
npx xo
使用前须知
- XO 要求你的项目使用 ESM 模块。
- 它是 ESLint 的封装,内置规则的问题需要到 ESLint 项目中反馈。
- 代码风格较为固执己见,默认使用制表符、单引号和分号,除非另行配置。
收录于专题
标签
常见问题
- xo 是什么?
- 开箱即用的 JavaScript/TypeScript 代码检查工具,基于 ESLint 封装,内置严格且统一的默认风格。 XO 是一个面向 JavaScript 和 TypeScript 的命令行代码检查工具,基于 ESLint 封装,并预置了一套有主见的默认规则。在项目中直接运行即可检查 JS、TS 及 Vue、Svelte、Astro 文件,也支持 HTML、Markdown、JSON 和 CSS,无需手动指定文件路径,也不必自行维护 ESLint 配置。它适合希望在代码评审中不再争论代码风格、由工具统一执行规则的团队。
- xo 可以免费使用吗?用的什么许可证?
- xo 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- xo 还在维护吗?
- 半年内有更新。xo 最近一次提交是在 2026年9月18日。
- xo 适合用来做什么?
- 团队无需自行编写 ESLint 配置,即可统一代码风格。 为新的 JavaScript 或 TypeScript 项目一条命令接入代码检查。 在 Vue、Svelte、Astro 或 React 项目中配合对应框架插件使用。 在大型现有代码库中借助忽略文件逐步引入更严格的规则。
- xo 怎么安装和运行?
- 在项目中本地安装 XO: npm install xo --save-dev 运行 XO 检查项目代码: npx xo
- 在哪里获取 xo?
- 源代码和安装说明在 GitHub 上:https://github.com/xojs/xo
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
让 ESLint 支持 TypeScript 代码解析与检查的工具链单体仓库,包含解析器、规则和插件。
一款 Python 代码格式化工具,可按可配置的风格自动重排源代码。
一个命令行工具与 flake8 插件,用于在多个项目间统一配置文件中的设置,并可自动修正。
面向 JavaScript 与 TypeScript 的零配置 linter 和格式化工具,一条命令即可接入 Biome、ESLint 或 Oxlint。
可插件扩展的 JavaScript 代码检查工具,用于发现问题代码模式,并可自动修复其中不少问题。