跳到主要内容

Deno 的重大变革

TLDR(太长不看)

  • 我们一直在进行一些更新,这些更新将使 Deno 能够轻松导入 npm 包,并使绝大多数 npm 包在未来三个月内在 Deno 中工作。
  • 我们的目标是使 Deno 成为最快的 JavaScript 运行时。首先,Deno 的下一个版本将包含一个新的 HTTP 服务器。它是迄今为止构建的最快的 JavaScript Web 服务器。
  • 鉴于大型公司和创始人的开发人员广泛使用 Deno,我们将为那些在商业环境中雇用 Deno 的人启动办公时间。请在此申请
  • Deno 最近在 GitHub 上的下载量超过 410 万次,每月活跃用户为 25 万。


首先,我们要感谢所有 Deno 用户,感谢你们帮助该软件在过去几年中不断发展。每天都有成千上万的开发人员使用 Deno,创造新的功能并提供反馈,使 Deno 变得更好。这是使 Deno 与众不同的核心要素之一——尤其是当它与致力于倾听和快速迭代以做出响应的全职员工相结合时。

在这篇文章中,我们将分享我们最近的调查以及更广泛的社区反馈中获得的经验。我们将讨论如何解决这些反馈,以及未来几个月 Deno 的预期功能。

与 Node 和 npm 的兼容性

也许不足为奇的是,Deno 用户在与 Node 的最佳兼容性级别上存在分歧。你们中的许多人已经指出,摆脱 Node 的所有痛苦是多么令人耳目一新——从过时且非标准的 API 到奇怪的模块加载启发式方法。我们听到了你们的声音,这些是我们团队最初创建 Deno 的一些主要原因。

尽管如此,你们中的相当一部分人只是想要一种更简单的方法来与为 Node 编写并作为 npm 包分发的 JavaScript 互操作。我们希望 Deno 易于访问并解决人们的问题,因此我们一直在进行一些更新,这些更新将使 Deno 能够轻松导入 npm 包,并在未来三个月内使 80-90% 的 npm 包在 Deno 中工作。

这将通过特殊的 npm URL 来实现。最好用一个例子来解释

import express from "npm:express@5";

在未来三个月内,大多数 npm 模块都可以像这样作为依赖项拉入。不会有 node_modules 文件夹,也不会有 npm install;包将自动下载到 Deno 缓存中。所有 Deno 工具都将与此配合使用,从类型检查到 LSP,再到 deno vendor

最快的 JavaScript 运行时

我们知道最近有很多关于运行时速度的讨论。竞争对生态系统有好处!我们很高兴有机会投入运行时性能工作。我们的目标是使 Deno 成为最快的 JavaScript 运行时 - 完全停止。我们 100% 确信 Deno 构建的技术堆栈 V8 和 Rust 可以实现这一点。Deno 的 HTTP 服务器正在进行大修,我们很高兴地报告,它是迄今为止构建的最快的 JavaScript Web 服务器。我们的 ops 系统 变得越来越优化 - 直接与 V8 Fast API 接口,以便从 JS 快速调用到本机代码。同样,我们的外部函数接口 (FFI) 也在进行更新,使其首屈一指。我们不是在为少数边缘情况进行优化,而是为了整体实际性能。在夏天结束之前,您将亲自体验到这些改进。

支持我们的企业用户

在我们最近的调查中,近一半的活跃 Deno 用户表示他们在工作中使用 Deno,包括大型公司的开发人员和构建新事物的创始人。我们很乐意听到更多关于您正在进行的工作,并了解我们如何更好地为您提供支持。展望未来,我们将为那些在商业环境中雇用 Deno 的人启动免费办公时间。由于我们仍然是一个非常小的团队,我们只是要求您填写此表格,以帮助我们选择人员开始。我们将根据项目规模和紧急程度确定优先级。

最流畅的开发者体验

当我们询问您从 Deno 获得的主要好处时,绝大多数人提到了开发者体验——尤其是开箱即用的 TypeScript。我们还听到了对 Deno 专注于 Web 标准和 API 的高度赞扬。“耳目一新”和“未来感”这两个词经常出现。我们的目标是确保 Deno 继续为每个人提供最佳的开发者体验,在未来几个月内,我们计划推出一些东西,使其变得更好,包括跨所有第三方 Deno 代码的全文符号搜索,以及为 JavaScript 和 TypeScript 项目自动生成的文档。这是一个快速预览

symbol search on deno.land

庞大且不断增长的生态系统

Deno 在过去几年中建立的生态系统的规模和支持性继续让我们感到兴奋。Deno 最近在 GitHub 上的下载量超过 410 万次,每月活跃用户为 25 万;采用率持续增长。我们非常感谢您不仅在最近的调查中对我们做出回应,还在 DiscordGithubTwitter 上做出回应。我们很高兴继续与您一起为 JavaScript 构建更美好的未来!