eslint-config-xo
ESLint 可共享配置,适用于 XO,支持 JavaScript、TypeScript、HTML 和 Markdown
这是面向高级用户的。您可能希望直接使用 XO。
请使用 XO 问题跟踪器] 而不是此问题跟踪器。
安装
npm install --save-dev eslint-config-xo
用法
// eslint.config.js
import eslintConfigXo from 'eslint-config-xo';
import {defineConfig} from 'eslint/config';
export default defineConfig([
...eslintConfigXo(),
]);
选项
browser
类型: boolean
默认值: false
使用浏览器全局变量而非 Node.js 全局变量。
export default defineConfig([
...eslintConfigXo({browser: true}),
]);
space
类型: boolean | number
默认值: false
使用空格而非制表符进行缩进。设置为 true 表示 2 个空格,或设置为数字以指定自定义数量。
export default defineConfig([
...eslintConfigXo({space: true}),
]);
semicolon
类型: boolean
默认值: true
在语句末尾使用分号。设置为 false 以强制不使用分号。
export default defineConfig([
...eslintConfigXo({semicolon: false}),
]);
prettier
Type: boolean | 'compat'
Default: false
集成 Prettier。
true— 使用 XO 的 Prettier 样式将 Prettier 作为 ESLint 规则运行,并禁用与其冲突的样式规则。需要安装prettier。'compat'— 仅禁用与 Prettier 冲突的样式规则,适用于单独运行 Prettier 的情况(例如,从编辑器或脚本中运行)。
export default defineConfig([
...eslintConfigXo({prettier: true}),
]);
你在 .prettierrc 中设置的 Prettier 选项仍然适用于 XO 未配置的任何内容(例如 printWidth 或插件),但 XO 自身的样式设置具有优先权。
gitignore
类型:string
忽略项目 .gitignore 文件中列出的路径。
传入 import.meta.url 以便 .gitignore 相对于你的 ESLint 配置文件进行解析。如果该文件不存在,则此操作无效。
export default defineConfig([
...eslintConfigXo({gitignore: import.meta.url}),
]);
[!NOTE] 使用 XO CLI 时不需要此操作,因为它已经遵循
.gitignore。
TypeScript
开箱即支持 TypeScript。如果已安装 typescript,则会自动启用 TypeScript 规则。对于仅包含 JavaScript 的项目,typescript 并非必需。
HTML
HTML 文件(*.html)会使用 @html-eslint/eslint-plugin 自动进行 lint 检查,涵盖最佳实践、可访问性、SEO 和样式。
Markdown
Markdown 文件(*.md)会使用 @eslint/markdown 自动进行 lint 检查,涵盖链接/图片的正确性、标题结构等。
自定义规则
xo/import-specifier-newline
当 import 跨越多行时,每个说明符必须位于单独的一行。可自动修复。
// Bad
import {
foo, bar, baz,
} from 'x';
// Good
import {
foo,
bar,
baz,
} from 'x';
// Single-line imports are not affected
import {foo, bar} from 'x';
包含的插件
eslint-plugin-unicorneslint-node-testeslint-package-jsoneslint-plugin-avaeslint-plugin-import-xeslint-plugin-n@eslint-community/eslint-plugin-eslint-comments@stylistic/eslint-plugintypescript-eslint@html-eslint/eslint-plugin@eslint/markdowneslint-plugin-regexpeslint-plugin-jsdoceslint-plugin-prettier(仅当启用prettier选项时)
改用 XO CLI
XO 是一个具有出色默认配置的 ESLint 封装器。
以下是你应该使用 XO CLI 而非此配置的一些原因:
- XO 已内置此配置。
- 美观的输出。
- 无需指定要检查的文件路径。它将检查除 常见忽略路径 外的所有 JS 文件。
- 使用
$ npm init xo将 XO 添加到项目中非常简单。 - 支持按文件/通配符覆盖配置/规则。
- Prettier 集成。
- React 支持。
- 可以在编辑器中打开所有包含错误的文件并定位到正确的行。(参见
--open标志) - 编辑器插件 在我看来比 ESLint 的更好。(主观意见)
简而言之,仅使用此配置会错过很多功能。
相关
- eslint-config-xo-react - 用于与此配置配合使用的 React ESLint 可共享配置