Svelte derleyici el kitabı
(lihautan.com)- Svelte'in derleme aşamalarını anlaşılması kolay şekilde açıklıyor
#1 .svelte dosyasını okuyup AST'ye dönüştürme
→ HTML kendi başına ayrıştırılır, Script için Acorn, CSS için css-tree kullanılır
#2 AST'yi dolaşıp referansları ve bağımlılıkları izleme
→ Component instance oluşturup değişkenleri bulur ve işaretler
#3 kod blokları ve parçalar oluşturma
→ DOM/SSR Renderer
#4 kod üretimi
2 yorum
Birkaç gün önce tanıtılan Toast UI Editor(https://tr.news.hada.io/topic?id=1823) da öyle, Language Server Protocol(https://en.wikipedia.org/wiki/Language_Server_Protocol) da öyle; AST'yi kullanan projeler giderek artıyor. Eskiden de JS dosyalarını metin olarak değil AST olarak gönderip tarayıcı motorunun bunları daha hızlı yorumlamasını öneren bir görüş görmüş gibiyim; bu yazı(https://blog.cloudflare.com/binary-ast) olmasa da benzer bir fikir gibi.
Örtük olarak oluşturulan bir AST yerine, elle daha anlamlı bir AST oluşturmaya başlayınca iş artık S-Expression ailesinden fonksiyonel dillere çıkıyor; ortada buluşurlarsa ilginç olur.
Bir kez okuduktan sonra, dış katkı sağlayanların Svelte koduna katkıda bulunması daha kolay olur gibi görünüyor.