3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2016 年 10 月 8 日 |
---|---|
0.2.0 | 2016 年 10 月 6 日 |
0.1.0 | 2016 年 10 月 5 日 |
#1188 在 编程语言
105KB
3K SLoC
HoneyBadger
在 Rust 中实现 ES2015+ 到 ES5 的转换器 + 打包器 + 压缩器。
因为 Webpack+Babel+UglifyJS 两者都非常出色,同时又非常糟糕。
要求
- Rust 1.8.0
用法
将编译后的代码打印到 stdout
$ cargo run -- -f input.js
将编译后的代码保存到文件
$ cargo run -- -f input.js -o output.js
功能
- 解析、转换和代码生成的基本流程。
- 可以解析和生成大量 ES2015+ 语法(不是全部,但正在路上)。
- 转换器可以将箭头函数转换为常规函数表达式,并在必要时添加
.bind(this)
。 - 对象简写以及计算属性会被转换为 ES5。
缺少的功能
- 跟踪原始源代码中标记和 AST 构造的位置。
- 有意义的解析错误报告。
- 任何类型的打包。
- 配置要执行哪些转换以及要跳过哪些转换的方式。
- 与外部编译器(Sass、Less、Handlebars)接口,也许会使用 Neon?
- 考虑分析函数作用域的方法(对于变量名混淆是必要的)。
依赖关系
~4MB
~84K SLoC