Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

vp migrate doesn't flag esbuild-specific config (minify: "esbuild") — migrated project fails to build on Vite 8

Aberta
#3,176 0 comentários 1 reação 1 responsável Ver no GitHub

Mantenedores costumam responder em até 1 dia

@john-okeefe já está trabalhando nisso.

Desde 21/10/2026.

  • #3178 de @john-okeefe — aberto

Avaliação

Esta issue ainda não foi avaliada.

Descrição

contribution welcome

vp migrate leaves esbuild-only config behind: minify: "esbuild" fails the build on Vite 8

Environment
  • vite-plus: 1.3.0 (installed alongside an existing Vite 7.3.6 project, then migrated)
  • Node 26.11.1, npm 11.20.0, Linux
  • Project shape: vanilla TypeScript app, no framework, two entries, build.minify: "esbuild" in vite.config.ts
Repro
  1. Start from a Vite 7 project whose config contains:
export default defineConfig({
  build: {
    minify: "esbuild",
    // ...
  },
});
  1. npm install -D vite-plus
  2. vp migrate --no-interactive
What migrate did
  • ✅ Rewrote scripts: vite build → vp build (including --watch / --mode development variants)
  • ✅ Aliased vite to @voidzero-dev/vite-plus-core + added an overrides pin
  • ✅ Rewrote import { defineConfig } from "vite" → "vite-plus" (consistent with the scoped-rewrite policy in #2004)
  • ❌ Left minify: "esbuild" untouched
Result

vp build then fails hard:

[plugin vite:esbuild-transpile]
Error: Failed to load `transformWithEsbuild`. It is deprecated and it now requires esbuild to be installed separately. If you are a package author, please migrate to `transformWithOxc` instead.

Manual fix was one line: minify: "esbuild" → minify: true (oxc minifier). After that the project builds cleanly and ~7× faster than Vite 7, for what it's worth.

Expected

Either:

  • migrate rewrites minify: "esbuild" → minify: true, or
  • migrate emits a warning/diagnostic that esbuild-specific config was detected and must be updated, since Vite 8 no longer bundles esbuild and these options hard-fail instead of silently working.

I understand from #2004 that migrate deliberately only rewrites symbols vite-plus owns — config semantics being out of scope is coherent. But this particular leftover isn't a silent behavioral difference, it's a guaranteed build failure on the very next vp build, with an error message that doesn't mention minify or the config line responsible. A diagnostic at migrate time would turn a confusing post-migration failure into a one-line guided fix.

Suggested detection surface
  • build.minify === "esbuild" in any config file migrate touches
  • imports/calls of transformWithEsbuild in project code or custom plugins
Related
  • #2004 — migrate's scoped import-rewrite policy (why the import rewrite happened but config semantics were never in scope)
  • vitejs/vite#22631 — same root cause class (Vite 8 unbundling esbuild breaking existing setups), different symptom
Linguagem predominante
Rust
Estrelas
6.3k
Forks
283
Merge médio
1d 12h
PRs com merge (30d)
235

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de voidzero-dev/vite-plus

Todas as issues de voidzero-dev/vite-plus

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.