Configuración de ESLint
Configuración de ESLint para UnoCSS: @unocss/eslint-config.
Instalación
pnpm add -D @unocss/eslint-configyarn add -D @unocss/eslint-confignpm install -D @unocss/eslint-configbun add -D @unocss/eslint-configEn Estilo de Configuración Plana:
import unocss from '@unocss/eslint-config/flat'
export default [
unocss,
// otras configuraciones
]En estilo legacy .eslintrc:
{
"extends": [
"@unocss"
]
}Reglas
@unocss/order- Hacer cumplir un orden específico para selectores de clase.@unocss/order-attributify- Hacer cumplir un orden específico para selectores attributify.@unocss/blocklist- Prohibir selectores de clase específicos [Opcional].@unocss/enforce-class-compile- Hacer cumplir la compilación de clase [Opcional].
Reglas opcionales
Estas reglas no están habilitadas por defecto. Para habilitarlas, agrega lo siguiente a tu .eslintrc:
{
"extends": [
"@unocss"
],
"rules": {
"@unocss/<rule-name>": "warn", // o "error",
"@unocss/<another-rule-name>": ["warn" /* o "error" */, { /* opciones */ }]
}
}@unocss/blocklist
Lanzar advertencia o error cuando se usen utilidades listadas en blocklist que coincidan.
Puedes personalizar mensajes para reglas bloqueadas para hacerlas más informativas y específicas del contexto usando la propiedad message del objeto meta:
export default defineConfig({
blocklist: [
['bg-red-500', { message: 'Usa bg-red-600 en su lugar' }],
[/-auto$/, { message: s => `Usa ${s.replace(/-auto$/, '-a')} en su lugar` }], // -> "my-auto" está en la lista de bloqueo: Usa "my-a" en su lugar
],
})@unocss/enforce-class-compile 🔧
Esta regla está diseñada para trabajar en combinación con el transformador de compilación de clase.
Lanzar advertencia o error cuando el atributo o directiva de clase no comience con :uno:.
🔧 automáticamente agrega el prefijo :uno: a todos los atributos y directivas de clase.
Opciones:
prefix(string) - puede usarse en combinación con prefijo personalizado. Por defecto::uno:enableFix(boolean) - puede usarse para migración gradual cuando esfalse. Por defecto:true
Nota: actualmente solo Vue está soportado. Contribuye un PR si quieres esto en JSX. Si estás buscando esto en Svelte, podrías estar buscando el modo svelte-scoped.
Trabajos Previos
Gracias a eslint-plugin-unocss por @devunt.