Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。
Deno 1.24 已发布,值得关注的更新包括:
类型检查和发射的性能改进
以前,当指定 --check
标志时,Deno 内部使用 TypeScript 编译器将 TypeScript 代码转换为 JavaScript,否则就使用 swc。在这个版本中,所有的发射都是用 swc 完成的,这要快得多。
此外,由于一些架构的重构:
- 发射不再发生在
deno check
中 - 用来存储发射的 JavaScript 的缓存更加强大
- 如果 Deno 在过去已经成功地对某些代码进行了类型检查,那么它将更聪明地不进行类型检查。
总的来说,这些改进应该有相当大的性能改善,但会因代码库的不同而不同。
unhandledrejection
事件
这个版本增加了对 unhandledrejection
事件的支持。
beforeunload
事件
这个版本增加了对 beforeunload
事件的支持。当事件循环没有更多的工作要做并即将退出时,该事件被触发。安排更多的异步工作(如定时器或网络请求)将导致程序继续。
import.meta.resolve()
API
Deno 从 v1.0 开始支持 import.meta
。两个可用的选项是 import.meta.url
和 import.meta.main
,这个版本增加了对 import.meta.resolve()
API 的支持,它可以让你解决相对于当前模块的指定器。
FFI API 的改进
这个版本在不稳定的 FFI API 中增加了新的功能和性能改进
对新的子进程 API 的更新
在 Deno v1.21 中,引入了一个新的不稳定的子进程 API。这个版本对这个 API 进行了重大更新。
LSP 改进
这个版本在编辑器中提供了更好的自动导入支持,不再像以前在某些情况下需要缓存依赖关系后重新启动 LSP。
更多详情可查看:https://github.com/denoland/deno/releases