Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。
Deno 1.28 已发布,值得关注的更新包括:
npm
Deno 1.28 稳定了 npm 兼容性,这意味着你现在可以在 Deno 中导入超过 130 万个 npm 模块。构建应用程序将比以往更容易、更安全,现在你可以使用如 Prisma、Mongoose 和 MySQL 等最喜欢的持久性数据模块,以及如 React、Vue 等前端框架。
有了 Deno,使用 npm 就更容易、更安全了。Deno 的内置工具链、std 库和强大的 IDE 支持意味着你可以更快地提高生产力。Deno 的默认安全、选择进入的权限模型意味着花更少的时间担心可疑的软件包,而花更多的时间交付产品。
锁文件的自动发现
Deno 从 v1.0 开始就支持锁文件,然而使用锁文件的体验还有待改进,此前用户总是有需要提供 --lock=<filename>
标记来使用锁文件。Deno 意识到这种情况导致许多用户根本就没有使用锁文件。
从 Deno v1.28 开始,如果发现了一个配置文件( deno.json(c)
),锁文件将被自动发现和使用。在这种情况下,在配置文件旁边将自动创建一个锁文件(如果还没有的话),名称为 deno.lock。如果新的依赖关系成为模块图的一部分,该锁文件将被自动和补充更新。
因此, --lock-write
标志的行为在这种自动发现的情况下得到了扩展,不再需要通过这个标志来更新锁文件,现在可以用它来强制从头生成锁文件。
如果你希望禁止自动发现锁文件,你可以使用 --no-lock
标志。
对 Deno API 的修改
已稳定:
在这个版本中,以下 API 已经稳定化,不再需要使用 --unstable
标志:
- Deno.bench()
- Deno.gid()
- Deno.networkInterfaces()
- Deno.systemMemoryInfo()
- Deno.uid()
新的不稳定 API
这个版本增加了一个新的统一的 Deno.Command API,以取代不稳定的 Deno.spoon、Deno.spoonSync 和 Deno.sponChild API。
V8 10.9
这个版本升级到了 V8 的最新版本(10.9,之前是 10.8)。这些主要是内部改进,但也包括一些面向公众的 API 变化。
- Symbols 作为 WeakMap 键
- unship array grouping(提议)
重写手册
随着 Deno 的发展,手册也在发生变化。我们不断地在这里和那里添加东西;随着时间的推移,这导致它变得有点不整齐。在这个版本中,我们对手册进行了全面的重构,使之更简单、更有组织。我们甚至还增加了一整节专门介绍 npm 的使用。
更多详情可查看:https://github.com/denoland/deno/releases