快速的Sucrase编译器正逐渐成为Babel JavaScript编译器的潜在替代产品,以用于开发目的(如果不是用于生产版本)。 该项目的开发者声称Sucrase比Babel快得多 ,但承认它缺乏Babel的范围和多功能性。
Sucrase旨在通过加快构建速度来使编程更加有趣。 Sucrase假定开发人员正在使用最新的浏览器或最新版本的Node.js。 因此,它着重于编译非标准语言扩展,例如TypeScript,Flow和JSX。 这种较窄的范围可以利用性能更高的编译器体系结构,尽管其可扩展性和可维护性较差。 因此,建议开发人员仔细考虑在生产中使用Sucrase。 在大多数情况下,Babel或tsc更适合生产版本。
Sucrase解析器是Babel解析器的精简版,它专注于Babel解决的部分内容。 Sucrase中的主要配置选项是一组转换名称,包括jsx,打字稿,流和react-hot-loader。 Sucrase不支持某些JavaScript语法(例如装饰器和私有字段),但可以通过传递,因此开发人员JavaScript运行时必须支持。
Sucrase的创建者还列举了以下限制:
- Sucrase不会检查代码是否有错误,应始终与linter或typechecker一起使用。
- Sucrase不利用插件。 需要编写转换以相互合作; 每个其他转换都需要大量工作。
- 该工具不适用于原型语言扩展和即将发布的语言功能。 Sucrase更快的体系结构使新的转换更加脆弱并且更难编写。
您可以通过yarn或npm 安装 Sucrase。 安装说明和文档在GitHub上的Sucrase存储库中提供。