From 278032c94ba16b0549c555daca3ba89c04074d52 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sat, 14 Mar 2026 20:29:49 +0800 Subject: [PATCH] docs: remove docs --- OXLINT_JS_PLUGINS_MIGRATION.md | 242 --------------------------------- 1 file changed, 242 deletions(-) delete mode 100644 OXLINT_JS_PLUGINS_MIGRATION.md diff --git a/OXLINT_JS_PLUGINS_MIGRATION.md b/OXLINT_JS_PLUGINS_MIGRATION.md deleted file mode 100644 index efd982c25..000000000 --- a/OXLINT_JS_PLUGINS_MIGRATION.md +++ /dev/null @@ -1,242 +0,0 @@ -# Oxlint JS Plugins 迁移可行性分析 - -更新时间:2026-03-14 - -## 结论 - -对当前仓库,`Oxlint + jsPlugins` 已经足以承接大部分 JS/TS lint 规则,但**现阶段无法在不丢失 lint 能力的前提下完全替换 ESLint**。 - -更准确的判断是: - -- 可行:继续把 JS/TS 主体规则迁移到 Oxlint,并逐步缩小 ESLint 的职责范围。 -- 不可行:立即删除 ESLint,并要求 Oxlint 100% 覆盖当前所有 Vue/JSONC/YAML/pnpm lint 规则。 - -## 官方能力边界 - -根据 Oxc 官方文档,Oxlint 的 JS Plugins 目前具备这些特征: - -- 支持 ESLint v9+ 插件 API,文档表述为“大多数现有 ESLint 插件应可直接工作”。 -- `jsPlugins` 仍处于 `alpha`,不受 semver 稳定性约束。 -- 当前尚未支持两类关键能力: - - 自定义文件格式和解析器,例如 Vue、Svelte、Angular。 - - 依赖 TypeScript type-aware 的 JS 插件规则。 - -另外,官方内建 `vue` 插件当前只覆盖“适用于 script tags 的规则”,并不等价于完整的 `eslint-plugin-vue` 模板规则集。 - -官方文档: - -- JS Plugins: https://oxc.rs/docs/guide/usage/linter/js-plugins.html -- Linter Config: https://oxc.rs/docs/guide/usage/linter/config.html -- Built-in Plugins: https://oxc.rs/docs/guide/usage/linter/plugins - -关键点摘录来源: - -- JS Plugins 兼容 ESLint v9+,且目前为 alpha:`js-plugins.html` -- 暂不支持 custom file formats/parsers 与 type-aware JS plugin rules:`js-plugins.html` -- 内建 `vue` 仅覆盖 script tags 可用规则:`plugins` - -## 仓库当前状态 - -当前仓库已经不是“Oxlint 还没开始接管”的状态,而是**Oxlint 已经承担主体,ESLint 负责补位**。 - -### 1. 根配置 - -- ESLint 入口:[eslint.config.mjs](./eslint.config.mjs) -- Oxlint 入口:[oxlint.config.ts](./oxlint.config.ts) - -两者都只是薄封装: - -- [eslint.config.mjs](./eslint.config.mjs) 直接使用 `@vben/eslint-config` -- [oxlint.config.ts](./oxlint.config.ts) 直接使用 `@vben/oxlint-config` - -### 2. 当前 lint 流程是双跑 - -见 [scripts/vsh/src/lint/index.ts](./scripts/vsh/src/lint/index.ts): - -- 检查时同时执行 `oxlint .` 和 `eslint . --cache` -- 修复时同时执行 `oxlint . --fix` 和 `eslint . --cache --fix` - -这说明工具链层面已经默认接受“Oxlint 负责大部分,ESLint 保留兜底”的模式。 - -### 3. Oxlint 已覆盖的能力 - -见 [internal/lint-configs/oxlint-config/src/configs/plugins.ts](./internal/lint-configs/oxlint-config/src/configs/plugins.ts): - -- 已启用内建插件:`import`、`node`、`oxc`、`typescript`、`unicorn`、`vitest`、`vue` - -见 [internal/lint-configs/oxlint-config/src/configs/tailwindcss.ts](./internal/lint-configs/oxlint-config/src/configs/tailwindcss.ts): - -- 已通过 `jsPlugins` 接入 `eslint-plugin-better-tailwindcss` - -这说明仓库已经验证过一个重要前提:**Oxlint 的 `jsPlugins` 在本项目里不是理论能力,而是已经在生产配置中使用。** - -## 为什么现在还不能彻底删掉 ESLint - -### 1. Vue 模板规则仍依赖 ESLint 生态 - -见 [internal/lint-configs/eslint-config/src/configs/vue.ts](./internal/lint-configs/eslint-config/src/configs/vue.ts): - -- 使用 `vue-eslint-parser` -- 使用 `pluginVue.processors?.['.vue']` -- 配置了大量模板/组件约束规则,例如: - - `vue/attribute-hyphenation` - - `vue/html-self-closing` - - `vue/v-on-event-hyphenation` - - `vue/block-order` - - `vue/require-default-prop` - - `vue/one-component-per-file` - -这部分明显超出“只 lint `