Cẩm nang về trình biên dịch Svelte
(lihautan.com)- Giải thích dễ hiểu các giai đoạn biên dịch của Svelte
#1 Đọc tệp .svelte và chuyển thành AST
→ HTML được tự phân tích cú pháp, Script dùng Acorn, CSS dùng css-tree
#2 Duyệt AST để theo dõi tham chiếu và phụ thuộc
→ Tạo instance Component và tìm, đánh dấu các biến
#3 Tạo các khối mã và các mảnh
→ DOM/SSR Renderer
#4 Sinh mã
2 bình luận
Mấy ngày trước có Toast UI Editor (https://vi.news.hada.io/topic?id=1823) được giới thiệu cũng vậy, rồi cả Language Server Protocol(https://en.wikipedia.org/wiki/Language_Server_Protocol) nữa, các dự án tận dụng AST ngày càng nhiều hơn nhỉ. Hình như trước đây tôi cũng từng thấy ý tưởng gửi file JS xuống dưới dạng AST thay vì văn bản để engine trình duyệt phân tích nhanh hơn; tuy không phải bài này(https://blog.cloudflare.com/binary-ast) nhưng có vẻ là một ý tưởng tương tự.
Nếu không phải AST được tạo ra một cách ngầm định mà là tự tay xây dựng AST theo hướng có ý nghĩa hơn, thì khi đó lại thành ngôn ngữ hàm thuộc họ S-Expression; nếu hai bên gặp nhau ở điểm giữa thì sẽ thú vị đấy.
Đọc xong một lần thì có lẽ sẽ giúp các contributor bên ngoài dễ đóng góp vào mã nguồn Svelte hơn