简介
前情提要
1. rust 是什么
一种编程语言,一度被赋予是c++/c语言的替代品支持函数式,面向对象编程
2. 编译器的基本工作流程
三个阶段:解析、转换、代码生成
- 解析:将原始代码(字符) -> 词法分析 -> 令牌 -> 语法分析 -> 抽象语法树(AST)
- 转换:处理抽象语法树(AST)-> 转换器 -> 新的语法树(AST)
- 代码生成:将处理后的新的语法树(AST)-> 新的代码(字符)
SWC为什么会诞生
既生瑜何生亮
swc被推崇,除了大众追捧外,也一定程度上说明babel 存在一些不太容易提升的地方。如社区所言:
- 语言劣势,用JS写的babel 不能用多核cpu处理编译任务链
“这其中转换为AST以及编译成字节码应该是最耗费性能的”
SWC是什么
Speedy Web Compiler基于Rust语言的JS编译器(Javascript Compiler),其生态周边中包含压缩插件、打包工具spack主要对标Babel,誓言要代替Babel (据说:转译性能比Babel快20倍)
相关应用形式
- @swc/cli: 自带了一个内置的 CLI 命令行工具,可通过命令行编译文件,类似于@babel/cli
- swc-loader: 该模块使得可以与 webpack 一起使用,类似于babel-loader
- @swc/core: 核心API的集合,类似于@babel/core
- ......
Loading...