前情提要
1. rust 是什么
一种编程语言,一度被赋予是c++/c语言的替代品
支持函数式,面向对象编程
2. 编译器的基本工作流程
三个阶段:解析、转换、代码生成
解析:将原始代码(字符) -> 词法分析 -> 令牌 -> 语法分析 -> 抽象语法树(AST)
转换:处理抽象语法树(AST)-> 转换器 -> 新的语法树(AST)
代码生成:将处理后的新的语法树(AST)-> 新的代码(字符)
![9b13b96eda59e6cdecfc7d175a1af8c8.png](https://i-blog.csdnimg.cn/blog_migrate/0cd8cce124dea0b7aaf1bed4f01df419.png)
SWC为什么会诞生
既生瑜何生亮
swc被推崇,除了大众追捧外,也一定程度上说明babel 存在一些不太容易提升的地方。引用社区所言:
语言劣势,用JS写的babel 不能用多核cpu处理编译任务链
![1ea9a1f2916bb0c03f54ff431ac8525c.png](https://i-blog.csdnimg.cn/blog_migrate/ebdd8b5ac033756882f137a20687c32b.png)
“这其中转换为AST以及编译成字节码应该是最耗费性能的”
SWC是什么
Speedy Web Compiler
基于Rust语言的JS编译器(Javascript Compiler),其生态周边中包含压缩插件、打包工具spack
主要对标Babel,誓言要代替Babel (据说:转译性能比Babel快20倍)