Le manuel du compilateur Svelte
(lihautan.com)- Une explication claire et facile à comprendre des étapes de compilation de Svelte
#1 Lecture du fichier .svelte et conversion en AST
→ HTML est analysé par son propre parseur, Script utilise Acorn, CSS utilise css-tree
#2 Parcours de l’AST pour suivre les références et les dépendances
→ Création d’une instance de composant, recherche et marquage des variables
#3 Génération des blocs de code et des fragments
→ Renderer DOM/SSR
#4 Génération du code
2 commentaires
Le Toast UI Editor (https://fr.news.hada.io/topic?id=1823) présenté il y a quelques jours, tout comme le Language Server Protocol (https://en.wikipedia.org/wiki/Language_Server_Protocol), montre qu'il y a de plus en plus de projets qui exploitent l'AST. Il me semble aussi avoir déjà vu l'idée de transmettre les fichiers JS non pas comme du texte mais sous forme d'AST afin que le moteur du navigateur puisse les interpréter plus vite ; ce n'était pas cet article (https://blog.cloudflare.com/binary-ast), mais l'idée paraît similaire.
Quand on ne se contente plus d'un AST généré implicitement et qu'on commence à construire l'AST à la main de manière plus signifiante, on se rapproche alors des langages fonctionnels de la famille des S-expressions. Ce serait intéressant de voir où les deux finissent par se rejoindre.
Après l’avoir lu, il sera sans doute plus facile pour les contributeurs externes de contribuer au code de Svelte.