Appearance
安装
sh
$ npm install @yl_lowcode/transcodersh
$ yarn add @yl_lowcode/transcodersh
$ pnpm install @yl_lowcode/transcoder将 JSONSchema 转 esModuleString
js
提供 getEsModuleString 将 JSONSchema 转化为 esModuleStringexcutecoder 解析 esModuleString
js
提供 excutecoder API 将得到的 esModuleString 字符串,解析成 __esModule 对象(底层基于 sucrase 处理编译)sucrase vs babel (为什么选 sucrase)
js
1. 体积
@babel/standalone: ~2.5 MB (Minified)。sucrase: ~30 KB (Gzipped)。差距巨大,Sucrase 几乎不增加包体积。
2. 速度:
Sucrase 仅仅是“移除类型”和“转换 JSX”,它不构建完整的 AST(抽象语法树),所以速度极快。Babel 会进行完整的语法分析和降级,速度较慢。
3. 兼容性 (缺点):
Babel 可以把 ES6+ 代码降级成 ES5 (如 const -> var, async -> generator),能跑在 IE11 上。
Sucrase 不做语法降级。它假设你的浏览器已经支持 const, arrow function, class 等现代语法。