no-relative-resolve-alias
Disallow relative string replacements inside resolve.alias in Vite config files.
Rule catalog ID: R006
Targeted pattern scopeโ
vite.config.*- shared Vite config fragments
What this rule reportsโ
This rule reports alias replacement strings such as "./src" or "../shared" inside resolve.alias.
Why this rule existsโ
Vite documents filesystem alias replacements as absolute paths.
Relative replacement strings look convenient, but they are fragile and often misread as import-specifier-like paths.
โ Incorrectโ
import { defineConfig } from "vite";
export default defineConfig({
resolve: {
alias: {
"@": "./src",
},
},
});
โ Correctโ
import path from "node:path";
import { defineConfig } from "vite";
export default defineConfig({
resolve: {
alias: {
"@": path.resolve(import.meta.dirname, "src"),
},
},
});
Behavior and migration notesโ
- use
path.resolve(...)orfileURLToPath(new URL(..., import.meta.url)) - keep alias replacement values explicit and absolute
ESLint flat config exampleโ
import vite from "@typpi/eslint-plugin-vite";
export default [vite.configs.configs];
When not to use itโ
Disable this rule only if your repository does not use filesystem alias replacements in Vite.