Introduction
vite-plugin-checker is a Vite plugin that runs type checkers and linters while you develop and build. It reports problems in the terminal and in an overlay in the browser, so you see them without switching to another tool.

Why use it
Vite transpiles TypeScript without type checking it, which keeps the dev server fast. The tradeoff is that type errors only show up in your editor or when you run tsc yourself. Linters work the same way: Vite doesn't run them.
vite-plugin-checker closes that gap:
- In dev mode, each checker runs in a worker thread in watch mode. Results appear in the terminal and in the browser overlay without blocking transforms or HMR.
- In build mode, each checker runs its CLI in parallel with the Vite build. If a check fails, the build fails.
For details, see Dev and build modes.
Supported checkers
| Checker | Option | Checks |
|---|---|---|
| TypeScript | typescript | Types in .ts and .tsx |
| vue-tsc | vueTsc | Types in Vue single-file components |
| svelte-check | svelteCheck | Types and diagnostics in Svelte components |
| ESLint | eslint | JavaScript and TypeScript lint rules |
| Biome | biome | Lint and format rules |
| oxlint | oxlint | JavaScript and TypeScript lint rules |
| Stylelint | stylelint | CSS lint rules |
You can enable several checkers at once. Each one runs independently.
Requirements
- Node.js
^22.22.0or>=24.11.0 - Vite
>=5.4.21 - The packages for the checkers you enable, installed in your project. Each checker page lists what to install.
Examples
The repository's playground directory has a small project for each checker. These are a good starting point:
Next steps
- Getting started: install the plugin and enable your first checker.
- Checkers overview: compare the checkers and how to enable them.
