Sutras 是什么?
Sutras专为快速构建以demo为中心的技术文档而设计。 简而言之,Sutras通过简单的配置,自动扫描Demo,将运行结果和源代码一致地集成到由 Vitepress 构建的技术文档中。
更多地:
实时源码编辑、编译、执行和反馈:Sutras 实现了REPL(实时交互式编程),支持快速测试代码片段、深入了解特性或进行概念验证(PoC)。
沙箱环境:Sutras 支持你将demo运行在独立、隔离的 沙箱环境 中。
服务端渲染(SSR):Sutras 支持使用 SSR模式 来渲染Demo。
SingleRepo & Monorepo:支持单项目及基于 Yarn、Bolt、Lerna、pnpm、Rush 等技术的多项目仓库架构。
Demo模块化:Sutras 支持你将复杂的Demo拆分为多个文件实现模块化,或多个Demo之间共享模块文件,并将这些文件作为Demo的一部分展示给库学习者。在REPL模式下,任一文件内容发生变化时,Sutras将只对变化的文件进行独立编译及热替换
Sutras的努力方向
面向库开发者的文档驱动开发模式
Sutras 提倡在编码前,通过撰写文档的方式来明确库的目标、解决的问题、需求、特性及其预期的使用方式。 进而为每个特性设计Demo,并从Demo开始研发和测试你的库。 依托于Vite
和VitePress
,Sutras 能够让你在研发过程中实时便捷地预览Demo的运行结果。
面向库学习者的高效学习体验
Sutras 从库学习者的角度出发,将对Demo的展示和交互进行持续的优化和改进。此外,Sutras 也在逐步借鉴Storybook等优秀框架的功能,旨在为学习者提供更高效的学习体验。
使用场景
Sutras根据了常见场景总结了使用案例,你也通过案例更直观地了解Sutras能为你做什么。
书写体验
Sutras 致力于提供良好的库研发体验。
测试驱动:Sutras基于Vite & Vitepress,实现即时的服务器启动,始终立即反映 (<100ms) 的编辑变化,无需重新加载页面,提供良好的测试驱动的研发体验。
灵活排版:Sutras对文档排版无强制约束,你可以在Vitepress文档中的任何位置渐进式地插入你的Demo。后续Sutras也将开放
@sgwm-sutras/hooks
,以支持库开发者自定义Demo展示、编辑样式。一致性维护:技术文档编撰者在维护过程中,无需关心:文档中展示的Demo的代码块 与 Demo源码 的一致性问题。
性能
得益于现代浏览器的ESM及ImportMap,Sutras在沙箱模式下只需要消耗很少的浏览器资源:
懒加载
Sutra的沙箱是懒加载的,每个Demo的编译、执行仅在即将进入视口时开始。
局部编译
Sutras只会编译Demo源码部分,对于Demo所依赖文件的编译则是在构建时完成。
模块热替换
Sutra实现了Demo的模块化,并在模块内容发生变化时,只对相应的模块进行重新编译。
LRU缓存
Sutras通过对demo源码进行解析,实现了分块式LRU缓存。这对demo源码中包含较多的template, script内容时,无论组件研发时,还是线上REPL运行时,都提供了一些的性能节省。
Sutras也针对性能方面做了多个复杂demo的加载案例