ESLint
安装
bash
pnpm add -D @uniboot/eslint-config eslint需 ESLint 9+(Flat Config)。包内已带常用 plugin 与 parser(@typescript-eslint/*、eslint-plugin-vue、vue-eslint-parser、eslint-plugin-perfectionist、eslint-plugin-unicorn、eslint-plugin-jsonc、eslint-plugin-yml、eslint-plugin-n、eslint-plugin-import-x、eslint-plugin-pnpm、eslint-plugin-unused-imports、globals 等),按预设默认行为生效;eslint 本体由项目安装。
使用
在仓库根目录放 eslint.config.mjs(或 eslint.config.js,需 ESM):
js
// eslint.config.mjs
import { defineConfig } from '@uniboot/eslint-config'
export default await defineConfig()defineConfig 的签名为:接收可选的额外 Flat 配置数组,返回合并后的配置 Promise(解析为 ESLint 所需的 flat 数组结构)。
js
import { defineConfig } from '@uniboot/eslint-config'
export default await defineConfig([
{
rules: {
'no-console': 'off',
},
},
{
ignores: ['public/**', 'lib/**/vendor/**'],
},
])预设里大约包含什么
@uniboot/eslint-config 在内部按以下顺序组入 Flat 配置片段:
vue— Vue SFC 规则与 parserjavascript— JS 基线ignores— 默认忽略(dist/、node_modules/等)typescript— TS 规则与 parserjsonc— JSON / JSONC / JSON5node— Node 平台规则perfectionist— 排序规则(imports、object keys 等)unicorn— 现代 JS 规则集yaml— YAML lint(yaml-eslint-parser)pnpm— pnpm workspace 与 catalog 相关customConfig— 仓库内自定义片段- 用户传入的额外数组(最后追加,便于覆盖)
具体规则集以源码 uniboot-configs/packages/lint-configs/eslint-config 为准;升级主版本时会变。
常改项
- 仅关闭某类文件:在传入
defineConfig的数组里增加带ignores的片段。 - 与 Prettier 冲突时:预设中已做常见集成;若仍报格式类重复,可检查本项目的
prettier版本与eslint-config-prettier是否由同一套版本约束。 - 与 Oxlint 协作:
@uniboot/eslint-config在依赖里包含@uniboot/oxlint-config(用于规则去重等内部协作),无需额外配置。