Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

defineConfig always injects vite-plus:vitest-resolver into vp build / vp dev even when Vitest isn't used

Aperta
#2,307 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
bun, typescript

Direzione di ricerca

Riproduci il problema con un vite.config.ts che importa defineConfig da vite-plus ed esegui vp build con i tempi dei plugin abilitati. Leggi le modifiche al resolver e all’auto-inline matcher nelle PR 356 e 1113, quindi traccia come vp build, vp dev e vp test li iniettano; il lavoro è completato quando i comandi non di test non comportano più plugin esclusivi di Vitest oppure esiste un’opzione di esclusione documentata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

pending triage
Describe the bug

defineConfig from vite-plus always prepends Vitest-only plugins into every Vite config, including for vp build / vp dev:

  • vite-plus:vitest-resolver
  • vite-plus:auto-inline-matcher
  • vite-plus:coverage-version-guard

Projects that use Vite+ for toolchain (fmt / lint / build) but run tests with another runner (e.g. Bun's bun:test) still pay for these plugins on every production build.

Rolldown/Vite plugin timings report:

[PLUGIN_TIMINGS] Your build spent significant time in plugins. Here is a breakdown:
  - vite-plus:vitest-resolver (87%)

The resolver is an enforce: "pre" resolveId hook, so it runs on every module resolve. It early-returns for non-vitest / @vitest/* ids, but with a large graph that still dominates plugin time.

There is no documented opt-out. lazyPlugins only gates user plugins during config-metadata loads; it does not skip these injected plugins on build/dev. vite-plus/prefer-vite-plus-imports also pushes app configs to import defineConfig from vite-plus rather than vite, so switching away isn't a clean escape hatch.

Reproduction
  1. Use import { defineConfig } from "vite-plus" in an app vite.config.ts
  2. Do not configure or run vp test / Vitest
  3. Run vp build (with plugin timings enabled)
  4. Observe vite-plus:vitest-resolver near the top of [PLUGIN_TIMINGS]
Expected

Vitest helper plugins should only be injected when running tests (vp test / Vitest), or there should be an explicit opt-out for projects that don't use Vitest.

System Info
  • vite-plus: 0.2.5
  • Tests: Bun (bun:test), not Vitest
  • Apps build via vp build
Suggested fix
  • Gate injection on test command / presence of test config, or
  • Add a config flag such as test: false / vitest: false to skip injection, or
  • Document a supported way to opt out without fighting prefer-vite-plus-imports
Related
Lingua principale
Rust
Stelle
5.8k
Fork
263
Merge medio
1g 3h
PR unite (30g)
147

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di voidzero-dev/vite-plus

Tutte le issue di voidzero-dev/vite-plus

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.