ESLint 配置
UnoCSS 的 ESLint 配置:@unocss/eslint-config。
安装
bash
pnpm add -D @unocss/eslint-configbash
yarn add -D @unocss/eslint-configbash
npm install -D @unocss/eslint-configbash
bun add -D @unocss/eslint-config在 Flat Config 风格 中:
js
import unocss from '@unocss/eslint-config/flat'
export default [
unocss,
// 其他配置
]在传统的 .eslintrc 风格中:
json
{
"extends": [
"@unocss"
]
}规则
@unocss/order- 强制 class 选择器的特定顺序。@unocss/order-attributify- 强制 attributify 选择器的特定顺序。@unocss/blocklist- 禁止特定的 class 选择器 [可选]。@unocss/enforce-class-compile- 强制 class 编译 [可选]。
规则选项
@unocss/order
unoFunctions(string[]) - 标记匹配名称的函数调用以应用此规则。这些是纯名称,不是模式,不区分大小写。默认值:['clsx', 'classnames']。unoVariables(string[]) - 标记匹配名称的变量声明以应用此规则。这些是带有标志i的正则表达式。默认值:['^cls', 'classNames?$'],例如会匹配变量名clsButton和buttonClassNames。
可选规则
这些规则默认未启用。要启用它们,请在 .eslintrc 中添加以下内容:
json
{
"extends": [
"@unocss"
],
"rules": {
"@unocss/<rule-name>": "warn", // 或 "error"
"@unocss/<another-rule-name>": ["warn" /* 或 "error" */, { /* 选项 */ }]
}
}@unocss/blocklist
当使用在 blocklist 中列出的工具类时发出警告或错误。
你可以通过使用 message 属性自定义被阻止规则的消息,使其更具信息性和上下文相关性:
ts
export default defineConfig({
blocklist: [
['bg-red-500', { message: '请改用 bg-red-600' }],
[/-auto$/, { message: s => `请改用 ${s.replace(/-auto$/, '-a')}` }], // -> "my-auto" 在 blocklist 中:请改用 "my-a"
],
})@unocss/enforce-class-compile 🔧
此规则设计为与 compile class 转换器 一起使用。
当 class 属性或指令不以 :uno: 开头时发出警告或错误。
🔧 自动为所有 class 属性和指令添加前缀 :uno:。
选项:
prefix(string) - 可与 自定义前缀 一起使用。默认值::uno:enableFix(boolean) - 当为false时可用于逐步迁移。默认值:true
注意:目前仅支持 Vue。如果你想在 JSX 中使用,请贡献 PR。如果你在寻找 Svelte 中的实现,你可能需要查看 svelte-scoped 模式。
参考项目
感谢 @devunt 提供的 eslint-plugin-unocss。