Rules
All lint rules lists every rule with its purpose, scope, configuration, and Bad/Good examples on the same page. Each pair explains why the Bad example triggers a finding and how the Good example changes it. Use the index to jump to a rule without opening another page.
With Vite+, use defineConfig from @vizejs/vite-plugin/vite-plus, configure lint.vize,
and run vp run lint for Vize and Oxlint. Existing script-name collisions use vp run vize:lint.
Built-in vp lint uses its own upstream checker.
Pages
- All lint rules: searchable catalogue with every purpose, scope, configuration, and full Bad/Good example pair inline.
- Rule Options: typed
lint.vize.ruleOptionsshapes, defaults, replacement behavior, and examples for every configurable rule. - ESLint migration map: mapped names, differences, unsupported rules, and literal Vite+ configuration changes.
- Vue rules: SFC template structure, Vue directives, component conventions, and single-file Vue correctness checks.
- Type and script rules: TypeScript checker-backed diagnostics and Vapor script restrictions.
- HTML rules: HTML validity and semantic markup checks.
- Accessibility rules: ARIA, keyboard interaction, labels, landmarks, and accessible media checks.
- SSR rules: server rendering and hydration hazards.
- Vapor rules: Vapor-only template constraints.
- Ecosystem rules: preset-backed checks for Nuxt, Vue Router, Pinia, vue-i18n, Vue Test Utils, and Void Vue.
- Musea and CSS rules: Musea art-block checks and style diagnostics.
- Cross-file rules: project-graph diagnostics emitted by
vp run lintwithcrossFile: true, including complete typed Router projects.
Presets
essential contains correctness rules that should almost always be enabled. happy-path adds
practical hygiene checks for day-to-day Vue development. ecosystem starts from the broad default
bundle and adds Vue Router, Vue I18n, Pinia, Vue Test Utils, Nuxt, and Void Vue checks. nuxt
includes Nuxt-oriented SSR expectations and Vapor expectations. opinionated is the broadest
built-in preset.
incremental starts empty. Use it when a host wants to opt into specific rules without inheriting a
larger preset.
Type-Aware Configuration
Rules that need semantic information read the TypeScript project through tsconfig.json. Prefer
putting shared environment names in compilerOptions.types or project references instead of keeping
a separate globals list in Vize config.