ast解析器;ast语法基础;babel学习外链;

疑问

  • babel-import-plugin中的node?
  • babel-import-plugin中的path?
  • identify?
    • image.png
  • specified?

    • image.png

      摘要&心得

  • 个人感觉ast编译原理相较于其他知识属于一个比较独立的技术点,可以专门做系统学习,最好带着明确的目的,掌握基础知识,进行实战演练,写的越多就越熟练,这点和typescript的学习是类似的。

  • 一个平台:AST explorer,可以实时看到 JavaScript 代码转换为 AST 之后的产出结果。
  • 这个平台实际使用了 acorn 作为 AST 解析器。

    • acorn: A tiny, fast JavaScript parser, written completely in JavaScript.
    • acorn 将词法分析和语法分析交替进行,只需要扫描一遍代码即可得到最终 AST 结果。
      1. let acorn = require('acorn')
      2. let code = 1 + 2
      3. console.log(acorn.parse(code))
  • 一段源代码可以用以下元素描述:

    • Program——整个程序
    • Statement——语句
    • Expression——表达式
  • Program 包含了多段 Statement,Statement 又由多个 Expression 或者 Statement 组成。
  • ast演练实战:实现一个treeShaking
    • 实战的内容暂且不表,但是由此看来babel-import-plugin就是一种精细化人工的treeShaking

      其他学习笔记

      2021.11.18