首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Deno 1.5使用新编译器,打包性能提升3倍

为 JavaScript 和 TypeScript 开发 Deno 运行时的团队最近发布了 Deno 1.5。新版本通过使用基于 Rust 的 JavaScript/TypeScript 编译器swc来提高打包性能,并通过摇树优化进一步减少包的大小。Deno 1.5 实现了 alert、confirm 和 prompt 等 Web 平台 API,开发人员可以在终端编写简单的交互式应用程序。

Deno 团队重构了 Deno 的 TypeScript 编译器基础架构,开始使用 swc。swc 是用 Rust 编写的 JavaScript/TypeScript 编译器和打包器。swc 声称单线程速度比 Babel 快 20 倍,在一次四核基准测试中快 70 倍。Deno 1.5 的发布说明提到了 swc 对 Deno 编译性能的影响:

当我们启用类型检查时,性能提升了 3 倍,如果开启--no-check 选项,则提升 15 倍。

新的摇树优化能力进一步降低包的大小。发布说明给出了一个源码示例,在使用 v1.5 而不是 v1.4 进行编译时,代码大小减少了 35%。

Deno 1.5 打好的包可以作为标准的 ES 模块发布。发布说明写道:

动态导入现在可以正常工作,import.meta.url 也可以正确设置。如果你使用 Deno 为浏览器打包代码,请确保将包作为 ES 模块加载(在<script>标签加上 type="module")。

新版本的 Deno 实现了 alert、confirm 和 prompt 等 Web 平台 API,语义与浏览器中的 API 类似。例如,在浏览器中,window.prompt 将显示一个带有可选消息的对话框,提示用户输入一些文本。在 Deno 终端中,prompt 函数同样会提示用户,并同步阻塞,直到接收到输入。

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

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

新版本 Deno 还为 REPL 添加了一些新特性。在 REPL 中,对象属性和方法可以通过按 TAB 键来自动完成。如果终端支持颜色,还可以高亮显示代码语法。REPL 现在还支持顶级await指令

发布说明还介绍了其他一起发布的次要特性。有兴趣的开发人员可以在网上查看发布说明

Deno 采用了 MIT 开源软件。开发者可以通过Deno项目参与贡献,并遵循Deno贡献指南

原文链接

Deno 1.5 Sees 3x Bundling Performance Improvement Due to Rust-Based JavaScript/TypeScript Compiler

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/e9jxdKSNa0g7so2MqNjX
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券