vite-plugin-checker
Run TypeScript, vue-tsc, svelte-check, ESLint, Biome, oxlint, and Stylelint in worker threads. Problems show up in your terminal and browser as you work, and a failing check fails vite build.
$ vite VITE ready in 312 ms ➜ Local: http://localhost:5173/ ERROR(TypeScript) Cannot find name 'titel'. Did you mean 'title'? FILE src/App.tsx:7:15 6 | const title = 'Hello' > 7 | return <h1>{titel}</h1> | ^ 8 | } [TypeScript] Found 1 error. Watching for file changes. [ESLint] Found 0 errors and 1 warning
Each checker wraps an existing tool and reads its usual config file, so results match your editor and CI. Enable as many as you need.
typescript: truevue-tscTypes in Vue componentsvueTsc: truesvelte-checkTypes and diagnostics in Svelte componentssvelteCheck: trueESLintJavaScript and TypeScript lint ruleseslint: { lintCommand: 'eslint .' }BiomeLint and format rulesbiome: trueoxlintJavaScript and TypeScript lint rulesoxlint: trueStylelintCSS lint rulesstylelint: { lintCommand: 'stylelint ...' }Compare checkersSee what each one needs and how it runs in dev and build.vite
vite build
tsc or eslint, with your config. enableBuild: false to check in dev only. Install the plugin with the tools you want to run, then enable them in your Vite config.
Using Nuxt, Vitest, or a backend framework? See the recipes.
Read the guidepnpm add -D vite-plugin-checker typescriptnpm install -D vite-plugin-checker typescriptyarn add -D vite-plugin-checker typescriptbun add -d vite-plugin-checker typescript// vite.config.ts
import { defineConfig } from 'vite'
import checker from 'vite-plugin-checker'
export default defineConfig({
plugins: [
checker({
typescript: true,
}),
],
})