默认配置
// .eslintrc.cjs
module.exports = {
root: true,
extends: ["@fast-china/eslint-config-legacy"],
rules: {
"no-console": "warn",
},
};Legacy 包面向 ESLint 8,官方接入形式仍是 .eslintrc.cjs 的 module.exports。项目规则直接放在根级 rules,或作为最后一个 overrides 项追加;不要使用 ESLint 9/10 Flat Config 的 defineConfig()。
根入口默认启用 browser globals、JavaScript、TypeScript、Vue 3、import-x、Promise、RegExp、JSON 方言、YAML、Markdown、CommonJS/工程文件兼容与 Prettier 冲突处理。
2.1.10 待发布源码延续 2.1.9 的 ESLint 8、可选类型感知检查、Vue 2 及全部 Legacy 公开预设,保留兼容规则策略,并同步 Fast.ESLint.Config 2.1.10 的技能文件默认忽略修复。Vue 单文件组件关闭 switch-exhaustiveness-check,普通 TypeScript 与 TSX 仍按 error 检查;仅 Vue 2 关闭 Vue 3 的 emits 契约。React 继续使用 ESLint 8 可同步加载的 CommonJS 插件,因为现代基准插件仅提供 ESM。
按需叠加的 /type-aware 使用 recommended-type-checked。Promise 是否等待由业务语义决定,因此关闭 no-floating-promises 与 strict-void-return,但继续检查 Promise 误用、错误的 await、unsafe 类型、冗余转换以及异常处理正确性所需的 return-await;Vue 模板与 TSX 属性允许 Promise 返回的事件处理函数。导出的 TypeScript 模块边界要求显式类型,内部函数、TSX 组件返回值及 Vue SFC 回调保留上下文推断。
纯类型导入和导出使用独立的 import type 与 export type,只在构造阶段赋值的私有成员使用 readonly。共享 JavaScript 规则禁止直接或间接动态执行字符串、Promise executor 返回值与 void 操作符,要求多行分支使用花括号,并将已有的 default 分支放在最后;Vue setup 禁止以丢失响应性的方式使用 props 或 ref。
