@antfu/eslint-define-config (英语)
一个叉子 eslint 定义配置 用于实验更好的平面配置支持.
此分叉中的变化
1. 每个插件的再出口规则
import {
VitestRules,
VueRules,
// ...
} from '@antfu/eslint-define-config'
2. 允许超越规则
import pluginVitest from 'eslint-plugin-vitest'
import {
defineFlatConfig,
VitestRules
} from '@antfu/eslint-define-config'
export default defineFlatConfig<VitestRules, /* Strict */ true>({
plugins: {
vitest: pluginVitest,
},
rules: {
// only `vitest/` rules are allowed and will be auto-completed
'vitest/no-async': 'error',
// @ts-expect-error not allowed
'indent': 'error'
},
})
3. 支助重命名规则
import {
RenamePrefix,
TypeScriptRules // { '@typescript-eslint/indent': 'error', ... }
} from '@antfu/eslint-define-config'
type RenamedRules = RenamePrefix<TypeScriptRules, '@typescript-eslint/', 'ts/'>
// { 'ts/indent': 'error', ... }
这样它可以用于平面配置插件重命名 :
import pluginTypeScript from '@typescript-eslint/eslint-plugin'
import {
defineFlatConfig,
RenamePrefix,
TypeScriptRules
} from '@antfu/eslint-define-config'
type RenamedRules = RenamePrefix<TypeScriptRules, '@typescript-eslint/', 'ts/'>
export default defineFlatConfig<RenamedRules>({
plugins: {
ts: pluginTypeScript, // renames to `ts/`
},
rules: {
'ts/indent': 'error',
// now we have auto-completion for `ts/` rules
},
})