作为一个现代化的 JavaScript/TypeScript 工具链,Deno 在上个版本就已经具备了原生 TypeScript 支持、内置的格式化和测试等功能。
此次 2.0 版本的亮点在于,Deno 现在可以与 Node.js 生态实现完全的向后兼容。
Deno 创建于 2018 年,由 Node.js 之父 Ryan Dahl 发起,旨在为 JavaScript 和 TypeScript 提供一个安全、现代化的运行时环境。
经过 2 年的发展,Deno 1.0 版本于 2020 年正式发布。尽管 Deno 一直在稳步发展,但与 Node.js 的不兼容性在一定程度上限制了它的应用范围。
deno fmt
格式化代码等。package.json
和 node_modules
,并提供了新的包管理命令如 deno install / add / remove
等。这使得使用 npm 包的体验和在 Node.js 中几乎一致。不仅如此,Deno 在日常 JavaScript 和 TypeScript 开发中也实现了重要的性能改进——无论是启动时间、处理复杂请求还是整体效率。
以下是一些展示 Deno 优势的基准测试,证明了它能够为开发者和生产环境提供顶级性能。
值得一提的是,Deno 的标准库也已经稳定,提供了数十个经过严格审核的实用模块。不少模块可以取代 npm 上常用的同类库,如测试框架、CLI 解析、基础工具集等。
此外,Deno 2.0 对私有 npm 源、monorepo 工作区等场景也提供了完善的支持。
尽管做了大量的兼容性工作,但 Deno 并不会改变 “去繁就简” 的设计理念。用户仍然可以不依赖任何配置文件来运行 Deno 代码。新增的包管理命令也不是必需的,主要是为了方便管理更为复杂的项目。
Deno 团队强调,他们的目标不是成为 Node.js 的替代品,而是为 JavaScript 提供一个更现代、高效的全功能工具链,让 Web 开发变得更简单。
Deno 是基于 V8 引擎和 Rust 编程语言编写的现代化 JavaScript 和 TypeScript 运行时,由 Node.js 之父 Ryan Dahl 创造。
Ryan Dahl 在 2018 年的演讲“我为 Node.js 感到后悔的十件事” (“Design Mistakes in Node”)中宣布了 Deno,
当时他提到后悔为 Node.js 制定的部分设计,例如没有在 API 中使用 JavaScript 的 Promise、GYP 建构系统、省略文件的扩展名、node_modules 与 package.json、使用 index.js 进行模块解析、V8 的沙盒环境等等。
Ryan 还指出了一个主要的问题——他没有把运行时做到尽可能的安全。之后,他在创建 Deno 时选择采用主打“内存安全”的 Rust 编写,以解决这一问题。Deno 也被宣传为“默认安全”。
https://deno.com/blog/v2.0
https://www.theregister.com/2024/10/09/deno_20_now_plays_nicer/