2026 മാർച്ചിൽ പുറത്തിറങ്ങുന്ന Vite 8, Rolldown എന്ന Rust അധിഷ്ഠിത ബണ്ട്ലറും (bundler), Oxc എന്ന പുതിയ പാഴ്സറും (parser) മിനിഫയറും (minifier) ഉൾക്കൊള്ളുന്നു. ഇത് പല യഥാർത്ഥ പ്രോജക്റ്റുകളിലെയും ഫ്രണ്ട്-എൻഡ് ബിൽഡ് സമയം പത്തിരട്ടി കുറയ്ക്കുന്നു. മുമ്പ് 46 സെക്കൻഡ് എടുത്തിരുന്ന ഒരു ടെസ്റ്റിൽ, അതേ കോഡ് ഇപ്പോൾ വെറും 6 സെക്കൻഡിൽ കംപൈൽ ചെയ്യപ്പെടുന്നു; ഈ മാറ്റം ഓരോ ഡെവലപ്പറുടെയും ദിവസത്തിലെ വിലപ്പെട്ട മിനിറ്റുകൾ ലാഭിക്കാൻ സഹായിക്കും.
വേഗത പ്രധാനമാകുന്നത് എന്തുകൊണ്ട്
ഫ്രണ്ട്-എൻഡ് ടീമുകൾ അവരുടെ സ്പ്രിന്റുകളിൽ (sprint) വലിയൊരു ഭാഗം റീബിൽഡുകൾക്കും (rebuilds) ഹോട്ട്-മോഡ്യൂൾ റീപ്ലേസ്മെന്റിനും (hot-module replacement) വേണ്ടി ചെലവഴിക്കുന്നു. മുമ്പ് അര മിനിറ്റ് മാത്രം എടുത്തിരുന്ന ഒരു ബിൽഡ് ഒരു മിനിറ്റായി നീണ്ടുപോകുമ്പോൾ, ഫീഡ്ബാക്ക് ലൂപ്പുകൾ തടസ്സപ്പെടുകയും പ്രോജക്റ്റുകൾ പുറത്തിറക്കുന്നത് സാവധാനത്തിലാവുകയും ചെയ്യുന്നു. പത്തിരട്ടി വേഗതയിലുള്ള കുറവ് എന്നത് വേഗത്തിലുള്ള ഇറ്ററേഷൻ (iteration), കൃത്യമായ ടെസ്റ്റിംഗ്, വേഗത്തിലുള്ള റിലീസുകൾ എന്നിവയ്ക്ക് നേരിട്ട് കാരണമാകുന്നു. പതിനായിരക്കണക്കിന് മോഡ്യൂളുകളുള്ള വലിയ കോഡ്ബേസുകളിൽ (codebases), ലാഭിക്കപ്പെടുന്ന ആകെ സമയം ആഴ്ചയിൽ മണിക്കൂറുകളോളം വരും.
Vite 8-ൽ പുതിയതായി എന്തൊക്കെയാണ്
- Rolldown – Rollup-ന് പകരമായി വരുന്ന Rust ഉപയോഗിച്ച് എഴുതിയ ഒരു ബണ്ട്ലർ. Rust നേറ്റീവ് കോഡിലേക്ക് കംപൈൽ ചെയ്യപ്പെടുന്നതിനാൽ, JavaScript അധിഷ്ഠിത ബണ്ട്ലറുകളെ അപേക്ഷിച്ച് ബണ്ട്ലിംഗ് ഘട്ടം വളരെ വേഗത്തിൽ നടക്കുന്നു.
- Oxc – esbuild-ന് പകരമായി വരുന്ന ഒരു പാഴ്സറും മിനിഫയറും. ഇത് ഒരു നേറ്റീവ് ബൈനറിയായി വരുന്നതിനാൽ, JavaScript പാഴ്സിംഗിന്റെ അധികഭാരം കുറയ്ക്കുന്നു.
- Native TypeScript path support –
vite-tsconfig-pathsഎന്ന അധിക പ്ലഗിന്റെ ആവശ്യം ഇല്ലാതാകുന്നു; കോൺഫിഗറിൽresolve.tsconfigPaths: trueഎന്ന് സെറ്റ് ചെയ്താൽ മാത്രം മതി. - Full Bundle Mode – ഡെവലപ്പർമാർക്ക് ഡെവ് സെർവർ (dev server) പ്രവർത്തിപ്പിക്കുമ്പോൾ തന്നെ പ്രൊഡക്ഷൻ ശൈലിയിലുള്ള ബണ്ട്ലർ ഉപയോഗിക്കാൻ സാധിക്കും. ഈ മോഡ് ഡെവ് സെർവർ സ്റ്റാർട്ടപ്പ് സമയം മൂന്നിരയായും, ഫുൾ പേജ് റീലോഡുകൾ ഏകദേശം 40% വേഗത്തിലായും കുറയ്ക്കുന്നു.
ഇവയെല്ലാം ഒരൊറ്റ Rust ടൂൾചെയിനിൽ (toolchain) പ്രവർത്തിക്കുന്നതിനാൽ, ഡെവലപ്മെന്റും പ്രൊഡക്ഷനും തമ്മിലുള്ള വ്യത്യാസം കുറയുന്നു. ഡെവ് സെർവറിന് ഉപയോഗിക്കുന്ന അതേ കംപൈൽ ചെയ്ത ഔട്ട്പുട്ട് ഇപ്പോൾ പ്രൊഡക്ഷൻ ബണ്ട്ലറിനെ പ്രതിഫലിപ്പിക്കുന്നു, ഇത് “works on my machine” എന്ന തരത്തിലുള്ള അപ്രതീക്ഷിത പ്രശ്നങ്ങൾ കുറയ്ക്കുന്നു.
എങ്ങനെ അപ്ഗ്രേഡ് ചെയ്യാം
- Node version – Vite 8-ന് Node 20.0.0 അല്ലെങ്കിൽ അതിനു ശേഷമുള്ള വേർഷൻ ആവശ്യമാണ്.
- Vite package –
npm install vite@latest @vitejs/plugin-react@latestഎന്ന് റൺ ചെയ്യുക. - Plugin cleanup –
vite-tsconfig-pathsഒഴിവാക്കി പകരംresolve.tsconfigPaths: trueഉപയോഗിക്കുക. - Babel swap – പുതുക്കിയ
@vitejs/plugin-reactഇപ്പോൾ Babel-ന് പകരമായി കുറച്ചുകൂടി ചെറുതും വേഗതയേറിയതുമായ Oxc ഉപയോഗിക്കുന്നു.
നിങ്ങൾക്ക് Full Bundle Mode വേണമെന്നുണ്ടെങ്കിൽ, നിങ്ങളുടെ ഡെവ് കോൺഫിഗറിൽ ഈ ഫ്ലാഗ് ചേർക്കുക:
export default defineConfig({
dev: {
bundleMode: true,
},
});
Rolldown കംപാറ്റിബിലിറ്റി ലെയർ മിക്ക Rollup ഓപ്ഷനുകളെയും ഉൾക്കൊള്ളുന്നതിനാൽ, നിലവിലുള്ള കോൺഫിഗറേഷൻ ഫയലുകളിൽ മാറ്റം വരുത്താതെ തന്നെ അപ്ഗ്രേഡ് ചെയ്യാൻ സാധിക്കും. ഈ ഘട്ടങ്ങൾക്ക് ശേഷം ബിൽഡ് വിജയകരമായി പൂർത്തിയായാൽ മൈഗ്രേഷൻ പൂർത്തിയായെന്ന് മനസ്സിലാക്കാം.
വലിയ പ്രോജക്റ്റുകളിലുള്ള സ്വാധീനം
മോണോറിപ്പോസുകളിലോ (monorepos) ധാരാളം തേർഡ് പാർട്ടി ലൈബ്രറികളുള്ള ആപ്ലിക്കേഷനുകളിലോ ഡെവ് സെർവർ പലപ്പോഴും ഒരു തടസ്സമായി (bottleneck) മാറുന്നു. Full Bundle Mode-ലൂടെ മൂന്നിരട്ടി വേഗത്തിലുള്ള സ്റ്റാർട്ടപ്പ് ലഭിക്കുന്നതോടെ, പുതിയ കൺട്രിബ്യൂട്ടർമാർക്ക് വളരെ കുറഞ്ഞ സമയത്തിനുള്ളിൽ ലോക്കൽ എൻവയോൺമെന്റ് സജ്ജമാക്കാൻ സാധിക്കും. 40% വേഗത്തിലുള്ള ഫുൾ റീലോഡുകൾ, ഒരു മാറ്റം പല മോഡ്യൂളുകളെയും ബാധിക്കുമ്പോഴും “refresh-and-test” ലൂപ്പ് വേഗത്തിൽ നിലനിർത്തുന്നു.
ബണ്ട്ലറും പാഴ്സറും നേറ്റീവ് ബൈനറികൾ ആയതിനാൽ, പൂർണ്ണമായും JavaScript ഉപയോഗിക്കുന്ന സ്റ്റാക്കിനെ അപേക്ഷിച്ച് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഫയൽ സൈസ് വർദ്ധിച്ചേക്കാം. ഡിസ്ക് സ്പേസ് കുറവുള്ള CI റണ്ണറുകൾക്ക് (CI runners) കൂടുതൽ സ്റ്റോറേജ് ആവശ്യമായി വന്നേക്കാം. കൂടാതെ, JavaScript ഇന്റേണലുകളെ ആശ്രയിക്കുന്ന ചില പ്രത്യേക Rollup പ്ലഗിനുകൾക്ക് ചിലപ്പോൾ പ്രശ്നങ്ങൾ ഉണ്ടായേക്കാം, അതിനാൽ അപ്ഗ്രേഡിന് ശേഷം അവ പരിശോധിക്കേണ്ടതുണ്ട്.
ഇനി ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ
- Community tooling – പ്ലഗിൻ ഡെവലപ്പർമാർ Rust-അധിഷ്ഠിത പതിപ്പുകൾ പുറത്തിറക്കാൻ തുടങ്ങിയിട്ടുണ്ട്. ഇക്കോസിസ്റ്റം ശ്രദ്ധിക്കുന്നത് അപ്രതീക്ഷിത പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ സഹായിക്കും.
- Performance metrics – ആദ്യമായി ഉപയോഗിക്കുന്നവർ ബെഞ്ച്മാർക്ക് (benchmark) ഫലങ്ങൾ പങ്കുവെക്കുന്നുണ്ട്. അവ നിങ്ങളുടെ പ്രോജക്റ്റുമായി താരതമ്യം ചെയ്യുന്നത്, പറയുന്ന പത്തിരട്ടി മുതൽ മുപ്പത്തിരട്ടി വരെയുള്ള വേഗത നിങ്ങളുടെ പ്രോജക്റ്റിലും ലഭിക്കുമോ എന്ന് ഉറപ്പുവരുത്താൻ സഹായിക്കും.
- Future Vite releases – ബണ്ട്ലംഗിന് അപ്പുറവും കൂടുതൽ Rust ഇന്റഗ്രേഷൻ കൊണ്ടുവരുമെന്ന് ടീം സൂചിപ്പിക്കുന്നുണ്ട്, ഇത് ഡെവലപ്മെന്റും പ്രൊഡക്ഷനും തമ്മിലുള്ള വ്യത്യാസം ഇനിയും കുറയ്ക്കും.
ചുരുക്കത്തിൽ
Vite 8-ന്റെ Rust അധിഷ്ഠിത കോർ, ഫ്രണ്ട്-എൻഡ് ഡെവലപ്മെന്റിന്റെ ദൈനംദിന രീതികളെ മാറ്റിമറിക്കുന്ന തരത്തിലുള്ള വേഗത നൽകുന്നു. സാവധാനത്തിലുള്ള റീബിൽഡുകൾ കാരണം ബുദ്ധിമുട്ടുന്ന ടീമുകൾക്ക് വളരെ എളുപ്പത്തിൽ അപ്ഗ്രേഡ് ചെയ്യാനും പെട്ടെന്ന് മികച്ച പ്രകടനം കാഴ്ചവെക്കാനും സാധിക്കും. വലിയ ബൈനറികളും പ്ലഗിനുകൾ പരിശോധിക്കേണ്ടി വരുന്നതും പോലുള്ള ചെറിയ ബുദ്ധിമുട്ടുകൾ, ഓരോ ബിൽഡിലും ലാഭിക്കുന്ന സമയവുമായി താരതമ്യം ചെയ്യുമ്പോൾ വളരെ കുറവാണ്. നിങ്ങളുടെ പ്രോജക്റ്റിലെ ബിൽഡ് സമയം ഒരു തടസ്സമായി തോന്നുന്നുണ്ടെങ്കിൽ, Vite 8-ലേക്ക് മാറുന്നത് ആ പ്രശ്നം പരിഹരിക്കാനുള്ള പ്രായോഗികമായ വഴിയാണ്.
