Skip to content
On this page



  1. Make sure eslint and related plugins for your eslintrc are installed as peer dependencies.


    (Optional but highly recommended) Install optionator@^0.9.1 with your package manager. It's needed because of ESLint dependents on it. It's probably working fine even it's not installed as it's accessed as a phantom dependency. But when you set hoist=false of pnpm. It won't be accessible anymore without explicit installation.

  2. Add eslint field to plugin config and options.eslint.lintCommand is required. The lintCommand is the same as the lint command of your project. The default root of the command uses Vite's root.


    Do not add --fix to the lint command since the plugin is only aiming at checking issues.

    // e.g.
    export default {
      plugins: [
          eslint: {
            // for example, lint .ts and .tsx
            lintCommand: 'eslint "./src/**/*.{ts,tsx}"',


Advanced object configuration table of options.eslint

fieldTypeDefault valueDescription
lintCommandstringThis value is requiredlintCommand will be executed at build mode, and will also be used as default config for dev mode when is nullable.
useFlatConfigbooleanfalseIf true, the plugin will use the new flat config of ESLint.
dev.overrideConfigESLint.Optionsundefined(Only in dev mode) You can override the options of the translated from lintCommand. Config priority: const eslint = new ESLint({cwd: root, ...translatedOptions,, }).
dev.logLevel('error' | 'warning')[]['error', 'warning'](Only in dev mode) Which level of ESLint should be emitted to terminal and overlay in dev mode

Released under the MIT License.