Astro 7.0 iznāca 22. jūnijā ar kompilatoru, kas no jauna uzrakstīts Rust valodā. Vienlaikus ietvars pārgāja uz Vite 8. Komanda savos mērījumos fiksē par 15 līdz 61 % ātrāku būvēšanu. Pašas Astro vietne, kurā ir aptuveni 308 lapas, būvējas par 61,3 % ātrāk: laiks nokrita no 62,70 uz 24,24 sekundēm.
Lielākais ieguvums ir vietnēm ar tūkstošiem lapu. Astro dokumentācija ar aptuveni 6313 lapām agrāk būvējās 114,54 sekundes, tagad 73,53 sekundes. Skaitļi nāk no Astro komandas paziņojuma, kur uzskaitīti seši publiski projekti ar būvēšanas laikiem pirms un pēc jauninājuma.
Kompilators pārgāja uz Rust
Astro faili ar paplašinājumu .astro satur gan HTML, gan JavaScript, gan komponentu sintaksi. Kompilators tos pārvērš par JavaScript kodu, ko izpilda serveris vai pārlūks. Iepriekšējais kompilators bija rakstīts Go valodā. Jaunais ir uzbūvēts uz oxc parsētāja un Lightning CSS bibliotēkas, kas apstrādā CSS ietveršanu komponentos.
Astro piegādā kompilatoru kā vietējos binārfailus katrai platformai. Ja platforma nav atbalstīta, iekļaujas WASM versija. Izolētā mērījumā jaunais kompilators dokumentācijas vietnē deva aptuveni 6 % uzlabojumu. Pārējais ātruma pieaugums nāk no citām vietām būvēšanas ķēdē.
Vite 8 ienes Rolldown
Astro 7 balstās uz Vite 8, kas savu būvēšanas dzinēju nomainīja pilnībā. Vecais Vite izmantoja esbuild izstrādes režīmā un Rollup produkcijas būvēm. Vite 8 abus aizstāj ar vienu paketētāju Rolldown. Tas ir rakstīts Rust valodā un balstās uz to pašu oxc rīkkopu, ko lieto Astro kompilators.
Vite komanda Rolldown mēra kā 10 līdz 30 reižu ātrāku par Rollup. Migrācija lielākoties notiek automātiski: Vite 8 pats pārtulko esbuild un rollupOptions konfigurāciju uz jaunajiem parametriem. Spraudņu API paliek savietojams ar iepriekšējo Rollup un Vite versiju, tāpēc lielākā daļa esošo spraudņu strādā bez izmaiņām.
Vite tagad ir viena rīkkopa no viena avota: būvēšanas rīks Vite, paketētājs Rolldown un kompilators Oxc, ko uztur viena komanda. To savā Vite 8 paziņojumā apraksta pati Vite komanda.
Markdown iet caur jaunu Rust dzinēju
Astro noklusēto Markdown un MDX apstrādi nomainīja ar Rust rīku ar nosaukumu Sätteri. Tas parsē Markdown ar pulldown-cmark bibliotēku, bet MDX izteiksmes apstrādā ar Oxc. Tieši šeit rodas lielākie skaitļi. Vietnes, kas sastāv galvenokārt no Markdown lapām, ietaupa visvairāk laika.
Cloudflare izstrādātāju dokumentācija ar 8431 lapu būvēšanas laiku samazināja no 386,89 uz 261,94 sekundēm, tas ir 32,3 %. Tauri projekta vietne ar 7117 lapām nokrita no 86,12 uz 55,33 sekundēm. Divi projekti ar mazāku Markdown īpatsvaru, biomejs.dev un aspire.dev, ieguva tikai ap 15 %.
Kas mainās kodā
Jaunais kompilators ir stingrāks. Astro vairs automātiski nelabo bojātu HTML. Agrāk kompilators pats pārkārtoja un aizvēra tagus, tagad neaizvērts tags rada kļūdu jau būvēšanas laikā. Tukšumu apstrāde tuvinās JSX loģikai: jaunas rindas starp iekļautajiem elementiem vairs neveido redzamu atstarpi.
Šīs izmaiņas var salauzt lapas, kas paļāvās uz veco piedošanas režīmu. Astro iesaka pirms jaunināšanas palaist būvēšanu vietējā vidē un pārbaudīt kļūdu ziņojumus. Lielākā daļa labojumu ir vienkārši: pievieno trūkstošos aizverošos tagus vai pārbauda atstarpes tekstā.
Rust arvien vairāk JavaScript rīkos
Astro 7 iekļaujas plašākā virzienā. Vite 8 paketētājs, Astro kompilators un Markdown dzinējs tagad visi ir Rust kodā. Vienā Vite 8 pārskatā minēts, ka Linear būvēšana ar Rolldown nokrita no 46 uz 6 sekundēm, bet GitLab būve saruka septiņas reizes.
Izstrādātājiem, kas jau lieto Astro, jauninājums nozīmē vienu galveno soli: pāreju uz Vite 8. Ja projekts nepaļaujas uz nestandarta esbuild uzstādījumiem vai bojātu HTML, migrācija aizņem dažas minūtes. Vietnēm ar tūkstošiem Markdown lapu tas atmaksājas uzreiz, jo katra būve kļūst par vairāk nekā minūti īsāka.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.