基于Rust的JavaScript编译器将Deno 1.5编译速度提高3倍


Swc声称在单线程上比Babel编译器快20倍,而在一个四核基准上快70倍。

负责JavaScript和TypeScript的Deno运行时团队最近发布了deno1.5。Deno 1.5通过使用基于Rust的JavaScript/TypeScript编译器swc改进了打包时间。Deno通过Tree-Shaking进一步减小了包的大小,并实现了警报、确认和提示web平台api。后者允许开发人员在终端中编写简单的交互式应用程序。

Deno的团队重构了Deno的TypeScript编译器基础结构以使用swc。后者是用Rust编写的JavaScript/TypeScript编译器和bundler。Swc声称在单线程上比Babel编译器快20倍,而在一个四核基准上快70倍。Deno 1.5的发行说明评论了swc对Deno的编译性能的影响:

当我们对您的代码进行类型检查时,这使性能提高了3倍,如果使用该--no-check标志,则性能提高了15倍。

新的Tree-Shaking能力可减少打包数量。该发行说明给出了一个源代码示例,该示例使用v1.5而不是v1.4进行编译时,其大小减小了35%。

Deno 1.5中的bundler现在作为标准ES模块发布。该版本说明:

动态导入现在将正确运行,并且import.meta.url设置正确。如果您使用Deno捆绑浏览器的代码,请确保立即将依赖包作为ES模块加载(标签type="module"上的属性<script>)。

新的Deno版本实现了web平台api的警报、确认和提示,其语义与浏览器中的类似。例如,在浏览器中,窗口.提示显示带有可选消息的对话框,提示用户输入一些文本。在Deno终端中,prompt函数同样会提示用户并同步阻塞,直到接收到输入。

上述api允许开发人员在终端中实现简单的交互。发行说明提供了一个简单的示例

基于Rust的JavaScript编译器将Deno 1.5编译速度提高3倍

在Node.js中提示用户输入可能需要开发人员直接操作I/O流(例如process.stdin)或通过库操作。

新的Deno版本还通过添加几个新特性改进了REPL。对象属性和方法可以通过按TAB键在REPL内完成。如果终端支持颜色,代码可以用语法突出显示。REPL现在还支持顶级的await指令。

该发行说明详细介绍了该发行版中的其他次要功能。有兴趣的开发人员可以在线查看发行说明

Deno是根据MIT许可提供的开源软件。通过Deno项目鼓励捐款,并应遵循Deno捐款准则

Top