Oxlint
安装
pnpm add -D @uniboot/oxlint-config oxlint包内已带 @eslint-community/eslint-plugin-eslint-comments、eslint-plugin-better-tailwindcss、eslint-plugin-command 等运行时依赖;oxlint 本体由项目安装。
使用
@uniboot/oxlint-config 现在以 TypeScript 工厂 形式发布,导出与 oxlint 自带 defineConfig 兼容的 defineConfig,以及预合并好的 oxlintConfig 基线:
// oxlint.config.ts(或 .mjs)—— 视当前 oxlint 版本支持的配置形态
import { defineConfig } from '@uniboot/oxlint-config'
export default defineConfig({
rules: {
// 本地覆盖
},
})defineConfig(config) 会把团队基线(oxlintConfig)与传入的 config 合并:categories / env / globals / rules / settings 走对象浅合并,ignorePatterns / overrides 走数组合并,jsPlugins / plugins 走集合去重。
仅支持 JSON 配置时
若你使用的 oxlint 版本仅识别 .oxlintrc.json,可在构建脚本里把 defineConfig 的产物落盘成 JSON:
// scripts/gen-oxlintrc.mjs
import { writeFileSync } from 'node:fs'
import { defineConfig } from '@uniboot/oxlint-config'
const config = defineConfig({
rules: {
// 本地覆盖
},
})
writeFileSync('.oxlintrc.json', JSON.stringify(config, null, 2))然后在 package.json 的 scripts 中加一条 "oxlint:gen": "node ./scripts/gen-oxlintrc.mjs",提交前或预安装钩子里跑即可。
预设里大约包含什么
@uniboot/oxlint-config 通过 mergeOxlintConfigs 组入下列片段:
javascript/typescript/vue/node— 各语言/平台基线command/comments— eslint-comments 与 command 插件相关import— 导入顺序与未解析项unicorn— 现代 JS 规则tailwindcss— Tailwind 类名与可达性test— 测试文件偏松规则ignores— 默认忽略overrides— 文件粒度覆盖plugins— 插件白名单
完整内容以源码 uniboot-configs/packages/lint-configs/oxlint-config/src/configs/* 为准。
类型与导出
import {
defineConfig,
mergeOxlintConfigs,
oxlintConfig,
} from '@uniboot/oxlint-config'
import type { OxlintConfig, UnibootOxlintConfig } from '@uniboot/oxlint-config'旧名
VbenOxlintConfig标注为@deprecated,请改用UnibootOxlintConfig。