6 points par xguru 2020-04-06 | 2 commentaires | Partager sur WhatsApp
  • 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

 
heycalmdown 2020-04-07

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.

 
xguru 2020-04-06

Après l’avoir lu, il sera sans doute plus facile pour les contributeurs externes de contribuer au code de Svelte.