3 个不稳定版本

使用旧的 Rust 2015

0.2.1 2016 年 10 月 8 日
0.2.0 2016 年 10 月 6 日
0.1.0 2016 年 10 月 5 日

#1188编程语言

MIT 许可证

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