Vite 8.1 i koniec dogmatu "unbundled dev servera"
Vite 8.1 dodaje eksperymentalny bundled dev mode. Brzmi jak mały przełącznik, ale dla dużych aplikacji może to być jedna z ważniejszych zmian w dev experience od lat.

Vite przez lata wygrywał bardzo prostym pomysłem: w devie nie bundlujemy całej aplikacji, tylko serwujemy moduły bezpośrednio do przeglądarki. I przez długi czas to było świetne. Start był szybki, HMR działał przyjemnie, a cały DX sprawiał wrażenie czegoś dużo lżejszego niż klasyczne webpackowe "czekaj aż się przemieli".
Problem w tym, że każda architektura ma swój punkt bólu. Przy naprawdę dużych aplikacjach taki "unbundled" zaczyna oznaczać setki, jeśli nie tysiące requestów, ogromny narzut i koszt po stronie przeglądarki, proxy, cache'u i wszystko to, co normalnie udaje się ignorować tylko w mniejszych projektach.
Dlatego w Vite 8.1 ciekawy jest nie tylko sam release, ale kierunek: eksperymentalny bundledDev, wcześniej znany jako Full Bundle Mode. Czyli próba połączenia produkcyjnego podejścia do bundlowania z ergonomią dev servera.
Według zespołu Vite, na testowej aplikacji z 10 tysiącami komponentów Reacta start był około 15x szybszy, pełne reloady około 10x szybsze, a HMR pozostawał natychmiastowy niezależnie od rozmiaru aplikacji. Linear w realnym projekcie raportował z kolei do 3x szybszy cold start render, około 40% szybsze full reloady i 10x mniej requestów.
To oczywiście nadal eksperyment. Część pluginów może nie działać, część mniej popularnych funkcji Vite może mieć braki, a cały tryb dopiero dojrzewa. Ale sam fakt, że Vite zaczyna oficjalnie adresować skalę dużych frontendów, jest dla mnie ważniejszy niż niektóre niezbyt pozytywne benchmarki.
"Unbundled dev server" był genialnym skrótem, kiedy problemem był wolny bundler. Teraz, przy Rolldownie i ogromnych aplikacjach, problemem coraz częściej nie jest samo bundlowanie, tylko liczba modułów, requestów i narzuty na przeglądarkę.
Jeśli macie duży frontend na Vite i czujecie, że lokalne środowisko przestało być tak natychmiastowe jak kiedyś, to vite --experimental-bundle wygląda jak coś, co warto przynajmniej sprawdzić na branchu.