3 个版本 (破坏性更新)

0.2.0 2024年7月7日
0.1.0 2023年11月27日
0.0.1 2023年8月7日

#568 in 编程语言

Download history 4/week @ 2024-05-19 2/week @ 2024-06-09 1/week @ 2024-06-16 3/week @ 2024-06-23 1/week @ 2024-06-30 178/week @ 2024-07-07 40/week @ 2024-07-14 67/week @ 2024-07-21 41/week @ 2024-07-28

每月下载量326次
4 个 crate 中使用 (3 个直接使用)

Apache-2.0

375KB
8K SLoC

fervid_transform

fervid 项目的一部分,一个全能的Vue编译器。这个crate负责模板中的转换,例如优化AST或转换AST节点中的JS/TS表达式。

未来这个crate可能还会容纳 <style> 转换,这些目前在其自己的crate中。

脚本

一套用于处理Vue的 <script><script setup> 的Rust API。

路线图

  • <script> 支持

    • 顶级声明和导入;
    • data 绑定;
    • props;
    • computed;
    • setup;
    • inject;
    • emits;
    • components;
    • methods;
    • expose;
    • name;
    • directives;
  • <script setup> 支持

    • 顶级声明和导入;
    • 绑定类型(使用位标志代替枚举);
    • 编译器宏
      • defineProps(...);
      • defineProps<...>();
      • defineEmits(...);
      • defineEmits<...>();
      • defineExpose;
      • defineOptions;
      • defineSlots;
  • TypeScript 支持

  • 其他功能

    • useCssVars;
    • 顶级 await
  • 编译顺序

    • 脚本分析;
    • 将脚本合并到Options API对象中
      • 简单的字段合并;
      • 使用 { ...遗留, ...设置 } 进行非平凡合并;
    • 附加编译后的模板
      • DEV 模式下添加绑定 返回,然后为 _sfc_ 对象附加渲染函数;
      • PROD 模式下内联模板;
    • 附加额外信息:名称作用域 等。

依赖项

~13MB
~294K SLoC