疑问
- babel-import-plugin中的node?
- babel-import-plugin中的path?
- identify?
specified?
个人感觉ast编译原理相较于其他知识属于一个比较独立的技术点,可以专门做系统学习,最好带着明确的目的,掌握基础知识,进行实战演练,写的越多就越熟练,这点和typescript的学习是类似的。
- 一个平台:AST explorer,可以实时看到 JavaScript 代码转换为 AST 之后的产出结果。
这个平台实际使用了 acorn 作为 AST 解析器。
- acorn: A tiny, fast JavaScript parser, written completely in JavaScript.
- acorn 将词法分析和语法分析交替进行,只需要扫描一遍代码即可得到最终 AST 结果。
let acorn = require('acorn')
let code = 1 + 2
console.log(acorn.parse(code))
一段源代码可以用以下元素描述:
- Program——整个程序
- Statement——语句
- Expression——表达式
- Program 包含了多段 Statement,Statement 又由多个 Expression 或者 Statement 组成。
- ast演练实战:实现一个treeShaking
- 实战的内容暂且不表,但是由此看来babel-import-plugin就是一种精细化人工的treeShaking
其他学习笔记
2021.11.18
- 实战的内容暂且不表,但是由此看来babel-import-plugin就是一种精细化人工的treeShaking