Vite 7.0: Node.js 20+, Rolldown e Baseline Widely Available - Release Giugno 2025
Scopri Vite 7.0: Node.js 20+ richiesto, integrazione Rolldown, Baseline Widely Available target, ESM-only, Environment API stabile e tutte le novità di giugno 2025.

Vite 7.0 è stato rilasciato il 24 giugno 2025. Questa major release introduce Node.js 20.19+ / 22.12+ richiesto, Rolldown bundler (Rust-based), target Baseline Widely Available, distribuzione ESM-only, e miglioramenti alla Environment API. Vite ora ha 31M download/settimana!
🎯 Novità Principali
Node.js 20.19+ / 22.12+ Richiesto
Dropped Node.js 18 (EOL Aprile 2025)!
# ❌ Node.js 18 - Non più supportato
node --version
# v18.20.0 ❌
# ✅ Node.js 20.19+ o 22.12+
node --version
# v20.19.0 ✅
# v22.12.0 ✅
Perché il cambio:
Node.js 20.19+ e 22.12+ supportano require(esm) senza flag!
// ✅ Node.js 20.19+ / 22.12+
// Vite può essere distribuito come ESM-only
// e comunque essere richiesto da CJS modules
// CommonJS file
const vite = require("vite"); // ✅ Funziona!
// ESM file
import vite from "vite"; // ✅ Funziona!
Benefici ESM-only:
- ✅ Modern architecture - Codebase più pulito
- ✅ Tree-shaking migliore - Bundle più piccoli
- ✅ Dynamic imports nativi - Performance migliorate
- ✅ Interoperabilità - CJS può ancora usare Vite
Rolldown Bundler (Rust-based)
Next-gen bundler costruito in Rust!
# ❌ Vite 6 - Default bundler
npm install vite
# ✅ Vite 7 - Rolldown (preview)
npm install rolldown-vite
# Drop-in replacement!
# Rolldown diventerà il bundler default in futuro
Vantaggi Rolldown:
# Before (Rollup)
Building for production...
✓ 1247 modules transformed.
dist/index.html 0.45 kB
dist/assets/index-abc123.js 142.37 kB │ gzip: 45.82 kB
✓ built in 8.34s
# After (Rolldown)
Building for production...
✓ 1247 modules transformed.
dist/index.html 0.45 kB
dist/assets/index-xyz789.js 142.37 kB │ gzip: 45.82 kB
✓ built in 2.41s ← 3.5x più veloce! 🚀
Performance gains:
| Project Size | Rollup | Rolldown | Speedup |
|---|---|---|---|
| Small (500 modules) | 3.2s | 1.1s | 2.9x 🚀 |
| Medium (2000 modules) | 8.3s | 2.4s | 3.5x 🚀 |
| Large (5000+ modules) | 24.1s | 5.8s | 4.2x 🚀 |
Come provarlo:
# Install
npm install rolldown-vite --save-dev
# Replace vite with rolldown-vite in scripts
# package.json
{
"scripts": {
"dev": "rolldown-vite",
"build": "rolldown-vite build",
"preview": "rolldown-vite preview"
}
}
Compatibility:
- ✅ Drop-in replacement - Nessun cambio config necessario
- ✅ Rollup plugins - Compatibilità completa
- ✅ Future-proof - Diventerà default in Vite 8+
Baseline Widely Available Target
Nuovo default browser target basato su Web Features Baseline!
// vite.config.js
// ❌ Vite 6 - Default 'modules'
export default {
build: {
target: "modules", // Chrome 87, Firefox 78, Safari 14
},
};
// ✅ Vite 7 - Default 'baseline-widely-available'
export default {
build: {
target: "baseline-widely-available", // Aggiornato automaticamente!
},
};
Cambio browser support:
| Browser | Vite 6 (modules) | Vite 7 (baseline) | Diff |
|---|---|---|---|
| Chrome | 87 | 107 | +20 versions |
| Edge | 88 | 107 | +19 versions |
| Firefox | 78 | 104 | +26 versions |
| Safari | 14.0 | 16.0 | +2 versions |
Cosa significa:
// ✅ Ora disponibili nativamente (senza polyfill):
// Modern JavaScript features
const result = array.findLast((x) => x > 0);
const lastIndex = array.findLastIndex((x) => x > 0);
// CSS features
/* Container queries */
@container (width > 400px) {
.card {
grid-template-columns: 1fr 1fr;
}
}
/* :has() selector */
.parent:has(.child:hover) {
background: blue;
}
/* CSS color spaces */
color: oklch(70% 0.15 150);
Benefici:
- ✅ Predictable: Default aggiornato ogni major
- ✅ Modern features: Accesso a API più recenti
- ✅ Smaller bundles: Meno transpiling/polyfills
- ✅ Better performance: Codice nativo più veloce
Backward compatibility:
// vite.config.js
export default {
build: {
// Puoi tornare al vecchio target se necessario
target: "modules", // O 'es2015', 'chrome87', etc.
},
};
Vite DevTools (Preview)
Debugging avanzato per progetti Vite!
// Sviluppato da Anthony Fu (VoidZero + NuxtLabs partnership)
// Features:
// - Inspector grafico per module graph
// - Performance profiling
// - Hot reload debugging
// - Plugin analysis
// - Environment inspection
Coming soon:
- 🔮 Visual module graph navigator
- 🔮 Real-time performance metrics
- 🔮 Plugin debugging tools
- 🔮 Framework-specific insights
📊 Altre Novità
Environment API Migliorata
buildApp hook per coordinare build di ambienti!
// vite.config.js
export default {
environments: {
client: {},
ssr: {},
},
plugins: [
{
name: "custom-plugin",
buildApp(builder) {
// ✅ Coordina build di client + SSR environments
builder.on("build", async (env) => {
if (env.name === "client") {
console.log("Building client...");
}
if (env.name === "ssr") {
console.log("Building SSR...");
}
});
},
},
],
};
Use case - Cloudflare Workers:
// Cloudflare Vite Plugin 1.0 (basato su Environment API)
import { cloudflare } from "@cloudflare/vite-plugin";
export default {
plugins: [
cloudflare({
runtime: "workers",
// ✅ Environment API permette runtime-specific optimizations
}),
],
};
Vitest 3.2 Supporto
# ✅ Vite 7.0 richiede Vitest 3.2+
npm install vitest@3.2
Compatibilità completa con nuove API Vite 7!
Rimossi Features Deprecati
// ❌ Rimossi in Vite 7:
// 1. Sass Legacy API
// Usa modern Sass API invece
css: {
preprocessorOptions: {
sass: {
api: 'modern' // ✅ Usa questo
}
}
}
// 2. splitVendorChunkPlugin
// Usa manualChunks invece
build: {
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
return 'vendor'
}
}
}
}
}
🔄 Migrazione da Vite 6
Update Node.js
# 1. Verifica versione Node.js
node --version
# 2. Se < 20.19, aggiorna Node.js
# Usa nvm:
nvm install 20
nvm use 20
# O scarica da nodejs.org
Update Vite
# Install Vite 7
npm install vite@7 --save-dev
# O con altre package manager
pnpm update vite@7
yarn upgrade vite@7
Update Dependencies
# Aggiorna plugin ecosystem
npm install @vitejs/plugin-react@latest
npm install @vitejs/plugin-vue@latest
npm install vite-plugin-*@latest
# Vitest users
npm install vitest@3.2
Testa Rolldown (Opzionale)
# Try Rolldown per build più veloci
npm install rolldown-vite --save-dev
# Update scripts in package.json
{
"scripts": {
"build": "rolldown-vite build"
}
}
# Test build
npm run build
Checklist Migrazione
✅ Pre-migrazione:
- [ ] Node.js 20.19+ o 22.12+ installato
- [ ] Backup progetto corrente
- [ ] Test suite funzionante
✅ Durante migrazione:
- [ ]
npm install vite@7 --save-dev - [ ] Aggiorna plugin Vite all'ultima versione
- [ ] Rimuovi
splitVendorChunkPluginse usato - [ ] Aggiorna Sass API se usi preprocessor
- [ ] Update
build.targetse customizzato
✅ Post-migrazione:
- [ ]
npm run dev- Verifica dev server - [ ]
npm run build- Verifica production build - [ ] Testa su tutti i browser target
- [ ] Verifica bundle size (dovrebbe essere simile)
- [ ] Run test suite completa
Breaking Changes
// 1. Browser target changed
// Prima: Chrome 87, Firefox 78, Safari 14
// Ora: Chrome 107, Firefox 104, Safari 16
// Fix: Specifica target custom se necessario
export default {
build: {
target: "modules", // Old behavior
},
};
// 2. Sass legacy API rimosso
// Prima: Sass legacy API (deprecated)
// Ora: Solo modern API
// Fix: Update config
css: {
preprocessorOptions: {
sass: {
api: 'modern'
}
}
}
// 3. splitVendorChunkPlugin rimosso
// Prima: splitVendorChunkPlugin()
// Ora: Usa manualChunks
// Fix: Custom chunking strategy
build: {
rollupOptions: {
output: {
manualChunks: {
'react-vendor': ['react', 'react-dom']
}
}
}
}
💡 Conclusioni
Vite 7.0 rappresenta un passo verso il futuro:
✅ Node.js 20+ - Modern runtime required ✅ Rolldown - Next-gen Rust bundler (3-4x faster) ✅ Baseline Widely Available - Predictable browser support ✅ ESM-only - Cleaner architecture ✅ Environment API - Framework flexibility ✅ Smooth migration - Da Vite 6 senza breaking changes major
Performance gains:
- 🚀 Build time: 3-4x più veloce con Rolldown
- 📦 Bundle size: Più piccolo con modern target
- ⚡ Startup: Migliore con ESM-only
- 🔧 DX: DevTools avanzati in arrivo
Inizia ora:
# Nuovo progetto
pnpm create vite my-app
# Update progetto esistente
npm install vite@7 --save-dev
# Try Rolldown
npm install rolldown-vite --save-dev
Link utili: