Deno 2020 回顾:API 稳定、1.0 发布、重构大型基础设施

来源: OSCHINA
编辑: 局长
2021-01-19

Deno 作者 Ryan Dahl 和另一名核心开发者 Bartek Iwańczuk 发表博客回顾了 Deno 的 2020,其中主要的事件包括:API 稳定、对多项大型基础设施进行重构以及发布 1.0 正式版等。

Deno 是作者 Ryan Dahl 在 Node 之后的又一大作,它是基于 V8 引擎的运行时,用于在 Web 浏览器之外执行 JavaScript 和 TypeScript,其采用 Rust 编写而成(最初用的是 Golang)。

Deno 从诞生到发布 1.0 正式版刚好经历了两年,下面是对它在 2020 的主要回顾。

支持 V8 调试器

Ryan 表示 Deno 团队花了很大的精力来添加对 V8 调试器的支持,以及实现使用 Chrome Devtools 连接到 Deno 进程的功能。与此同时,CLI 也增加了两个子命令:

  • deno doc
  • deno upgrade

在此期间,构建过程也有了巨大的改进。Ryan 表示,到目前为止,Deno 每次都是从源码构建 V8。V8 是一个非常庞大的项目,Deno 团队能做到将构建时间控制在 30 分钟。

稳定 API

为了给发布 1.0 做准备,Deno 团队对全局的 API 进行了审查,因此出现了许多破坏性变化。出于保守考虑,所有未稳定的 API 都被加上了--unstableflag。同时团队承诺标记了稳定状态的 Deno API 在 2.0 发布前都不会发生破坏性变化。

与此同时,Deno 发布了最后一个 0.x.y 版本。

Deno 1.0 发布

在 Ryan 发表“我为 Node.js 感到后悔的十件事”演讲的两年后,2020年5月13日 Deno 1.0 正式版终于发布了。

Deno 试图提供一个独立的工具来快速编写复杂功能的脚本,它将始终是单个可执行文件。就像 Web 浏览器一样,它知道如何获取外部代码。在 Deno 中,单个文件可以定义任意复杂的行为,而无需任何其它工具。

将内部运行时 (runtime) 代码从 TypeScript 改为使用 JavaScript 重写

在此过程中,Deno 团队决定将内部运行时的编程语言从 TypeScript 转换为JavaScript。Ryan 表示这是一个艰难的决定,但为了优化复杂而又缓慢的构建过程,他最后还是同意了此方案。

WebSocket API、控制台的 CSS 样式、文件浏览器、测试覆盖率

Deno 宣称发布包含上述特性的新版本时,这是自 1.0 以来最大的功能版本。自此,Deno 发布计划从每月的次要版本更改为每六周发布一次新的次要版本,与 Rust 和 Chrome 项目的节奏一致。

独立的二级制文件和语言服务器 (LSP)

2020年最后一个月,Deno 发布的 1.6 增加了两项具有里程碑意义的功能:独立的二进制文件和语言服务器,并实现了deno compile这是用户最需要的一项功能。

Deno 提供内置的语言服务器可以为所有能够使用 LSP 协议的编辑器提供良好的开发体验。VS Code 也因此进行了第三次改造,目前仍在进行中。

2021

Deno 团队目前暂定的计划如下:

详情查看 https://deno.land/posts/deno-in-2020

展开阅读全文
5 收藏
分享
加载中
精彩评论
感觉这个前景不错
2021-01-19 09:24
2
举报
花了2年多终于发布了1.0,不得不佩服这种坚持的精神!
2021-01-19 09:23
2
举报
node确实问题太多了,那个node_modules目录就是一个黑洞;每次npm install,一堆提示,各种版本冲突,版本过期,一个包被不同的包引用不同的版本,不仅复杂低效,而且很容易就失控
2021-01-22 10:25
1
举报
现在已经1.7版本了,更新速度贼快
2021-01-22 00:30
1
举报
node确实问题太多,不过生态这玩意还真难说。
2021-01-19 08:28
1
举报
最新评论 (19)
TypeScript 还是要编译成 JavaScript 才能运行?
2021-01-22 13:08
0
回复
举报
node确实问题太多了,那个node_modules目录就是一个黑洞;每次npm install,一堆提示,各种版本冲突,版本过期,一个包被不同的包引用不同的版本,不仅复杂低效,而且很容易就失控
2021-01-22 10:25
1
回复
举报
图表长颈龙可爱的一匹
2021-01-22 09:47
0
回复
举报
现在已经1.7版本了,更新速度贼快
2021-01-22 00:30
1
回复
举报
deno 牛啊
2021-01-21 16:05
0
回复
举报
不兼容node依赖是最大的问题, 完全可以兼容node的依赖, 将node_modules改为全局共享.
2021-01-21 11:39
0
回复
举报
或许到时候他们会改造成node能用的,deno也能用,抢用户
2021-01-20 12:34
0
回复
举报
有没有勇士解决一下Electron For Deno?
2021-01-19 13:36
0
回复
举报
这个长颈龙挺可爱
2021-01-19 09:33
0
回复
举报
感觉这个前景不错
2021-01-19 09:24
2
回复
举报
更多评论
19 评论
5 收藏
分享
返回顶部
顶部