Back to all fixes
CuratedTypeScriptVite 8local

@vitejs/plugin-legacy build fails after esbuild upgrade: "Transforming destructuring ... is not supported yet"

Problem

After esbuild bumped to 0.27.7+ inside Vite 7.3.2's dependency tree, `@vitejs/plugin-legacy` builds fail with errors like: `[vite:esbuild-transpile] Transform failed with 25 errors: ... Transforming destructuring to the configured target environment ("chrome64", ... ) is not supported yet`, even with stock legacy() config such as `legacy({ targets: ['defaults', 'not IE 11'] })`.

Solution

typescript
Root cause is an esbuild regression (evanw/esbuild#4436). Fixed in Vite 7.3.3 via vitejs/vite PR #22346 (merged) - upgrade to 7.3.3 or later. If you must stay on an earlier 7.3.x, work around it by explicitly telling esbuild the target already supports destructuring:
```ts
// vite.config.js
export default {
  esbuild: {
    supported: { destructuring: true }
  }
}
```
Note from maintainers: this workaround can mask a real incompatibility for very old targets since it silences esbuild's own detection, so prefer upgrading to 7.3.3+ (or Vite 8, where the legacy/modern browser threshold was raised and the bug doesn't trigger) over keeping this flag long-term.