j**ascript 和 Typescript 执行环境 DENO 1Update 39 添加了许多重要的新功能,不仅支持 WebGPU 回归、增强图形、游戏和机器 习 功能,还添加了新的 Deno 测试覆盖报告器、改进的程序分析和节点JS 兼容性支持也有新的发展,可以简化 NodeJS 开发人员的转换工作。
Deno 试图在 2021 年引入 WebGPU,但由于性能问题在今年早些时候被删除,现在性能问题已经正式解决,重新引入了 WebGPU 支持。 WebGPU API 提供了一种低端、高性能和跨架构的方法,使开发人员能够使用 J**Ascript 编写 GPU 应用程序。 WebGPU 被认为是 WebGL 的继任者,该规范现已最终确定,Chrome 开始支持 API,对 Firefox 和 Safari 的支持仍在开发中。
GPU 在数值并行计算方面比 CPU 具有明显的优势,不仅在加速渲染和游戏执行方面,而且在机器 习 算法中具有高效的矩阵运算。 据官方统计,Deno 中的 WebGPU 实例现在与将添加到 Firefox 的 WebGPU 实例具有相同的底层系统,因此您可以放心地在其上构建应用程序。 虽然 webGPU 规范已经稳定下来,但 Deno 对 WebGPU 的支持仍处于不稳定阶段,因此要在 Deno 中试用 WebGPU,需要添加 -unstable-webgpu 标志。
deno 1.39 的 Test Coverage 工具还添加了两个新的报告器,即 Summary Reporter 和 HTML Reporter Summary Reporter 目前是默认的 Reporter,它以简洁的形式显示特定于文件和整体覆盖率的数据,而 HTML Reporter 则以 HTML 格式生成测试覆盖率报告。
DENO 语言服务器的性能在新版本中得到了加强,首先是打字体验更流畅,响应速度更快,官方优化了因为需要快速打字而产生的大量请求,保证开发者的 IDE 有更流畅的编辑体验,此外,为了解决残差语言服务器执行实例的问题, 还增加了超时关闭机制,在开发者关闭编辑器后的一定时间内,会强制语言服务器程序终止。
Deno Compile 也有重要的更新,尤其是 Node在 JS 模块的支持下,开发者可以通过使用 -unstable-byonm 标志直接在他们的 Deno 项目中使用 npm 组件,这有效地将 Deno 与丰富的 npm 生态系统联系起来。
Deno 现在支持更多的动态导入模式,这是一个重要的更新,因为 Deno 需要将执行时导入的所有模块静态地包含在 Deno Compile 生成的二进制文件中,而现在 Deno 可以处理更广泛的动态导入模式,这意味着开发人员可以灵活地在执行时导入所需的模块, 这不仅简化了依赖项目管理,而且进一步确保了所有动态引用的模块在执行时都可用。
deno 1.39 中的 loose import 函数也简化了 Typescript 程序向 Deno 的迁移,允许开发者使用 —unstable-sloppy-imports 标志在 import 语句中省略文件格式名称。 此外,尽管出于安全考虑,deno 不支持对象prototype.proto,但由于许多 npm 组件仍然使用此属性,开发人员只需使用 -unstable-unsafe-proto 标志即可允许激活它。