惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
博客园 - 【当耐特】
D
Docker
Y
Y Combinator Blog
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
B
Blog
The GitHub Blog
The GitHub Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
爱范儿
爱范儿
A
About on SuperTechFans
量子位
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

蚊子的前端博客

微说 | 有的人觉得只要不考XX,一定能考好!-蚊子的前端博客 微说 | 春天来了-蚊子的前端博客 明天和意外不知道哪个先来-蚊子的前端博客 微说 | 既然错过了路口,就及时止损,重新规划路线上路-蚊子的前端博客 微说 | 2025年的出生人口数是792万-蚊子的前端博客 微说 | 工作年终总结,让写对接的接口的数量?-蚊子的前端博客 微说 | 温家宝:没有政治体制改革的成功 经济体制改革不可能进行到底-蚊子的前端博客 微说 | 违法犯罪了该不该被禁言?-蚊子的前端博客 微说 | 不明白为什么在推荐去俄罗斯旅游-蚊子的前端博客 微说 | 易中天论骗子-蚊子的前端博客 微说 | 一场大风吹散了秋天-蚊子的前端博客 微说 | 既要、又要、还要、更要!-蚊子的前端博客 又是一年的国庆雨季-蚊子的前端博客 微说 | 预估下2025年的出生人口数据-蚊子的前端博客 微说 | 可惜了我那些小时候的书本-蚊子的前端博客 微说 | 牛马有的是,驴不够了!-蚊子的前端博客 微说 | 能否有一条非户口也能高考的路-蚊子的前端博客 微说 | 小聊中医-蚊子的前端博客 微说 | 将要制作的一款新产品-蚊子的前端博客 微说 | 做人要有信-蚊子的前端博客 微说 | 好一个正义联盟-蚊子的前端博客 微说 | 都是见过吃过的主儿-蚊子的前端博客 微说 | 追求8小时工作制有错吗?-蚊子的前端博客 微说 | 如果尖锐的批评完全消失-蚊子的前端博客 微说 | 很好!-蚊子的前端博客 微说 | 封禁用户可以,但要告知具体原因-蚊子的前端博客 微说 | 面朝大海,春暖花开-蚊子的前端博客 微说 | 程序员的悲哀是什么?-蚊子的前端博客 微说 | 2025年出生人口的预测-蚊子的前端博客 前端在 LiveKit 中如何获取所有的参与者-蚊子的前端博客
Deno2.0 正式发布,向 Node.js 兼容-蚊子的前端博客
author · 2024-10-10 · via 蚊子的前端博客

开源 JavaScript 和 TypeScript 运行时 Deno 于 10 月 9 日发布了 2.0 版本。

Deno 创建于 2018 年,由 Node.js 之父 Ryan Dahl 发起,旨在为 JavaScript 和 TypeScript 提供一个安全、现代化的运行时环境。经过 4 年的发展,Deno 1.0 版本于 2020 年正式发布。

尽管 Deno 一直在持续且稳定地进步,但其与 Node.js 之间存在的不兼容性,确实在一定程度上制约了其更广泛的应用。作为一款现代化的 JavaScript/TypeScript 工具链,Deno 在此前的版本中便已经彰显了其强大的实力,包括原生支持 TypeScript、内置的代码格式化与测试功能等。而此次推出的 2.0 版本,更是带来了一个令人瞩目的亮点——Deno 现已实现了与 Node.js 生态的全面向后兼容。

任何基于 JavaScript 语言的工具链,都无法回避 Node.js 这些年构建的生态环境。Node.js 起步早,生态完善,项目众多。工具要足够优秀且迁移方便,才有动力让开发者从 Node.js 迁移到新的工具链上。

Deno2.0 的核心变革在于它全面拥抱了 Node.js 和 npm 生态。这一变革使得现有的 Node.js 应用程序能够无缝地迁移到 Deno 平台上运行。开发者们不仅可以在当前的 Node.js 项目中灵活引入 Deno,还能逐步采纳 Deno 提供的各种高效工具,例如利用 deno fmt 来格式化代码。

此外,Deno 2.0 还原生支持了 package.jsonnode_modules,并推出了诸如 deno installdeno adddeno remove 等全新的包管理命令。这些改进使得在 Deno 中使用 npm 包的体验与在 Node.js 中几乎别无二致。Deno 团队自豪地表示,这种兼容性的实现不仅性能卓越,而且在依赖安装速度上甚至超越了 npm。

值得一提的是,Deno 的标准库也已经趋于稳定,提供了数十个经过精心筛选和严格审核的实用模块。其中不少模块能够替代 npm 上广受欢迎的同类库,涵盖了测试框架、CLI 解析、基础工具集等多个领域。此外,Deno 2.0 还对私有 npm 源、monorepo 工作区等复杂场景提供了完善的支持。

以下是 Deno 2.0 的主要更新:

  • Node.js 与 npm 的兼容性:Deno 2 实现了与 Node.js 和 npm 的全面向后兼容,使得现有的 Node 应用能够无缝地在 Deno 环境中运行。
  • 包管理系统的革新:Deno 2 引入了 deno install、deno add 和 deno remove 等命令,进一步增强了其包管理功能,同时全面支持 package.json 和 node_modules,为开发者提供了更加便捷的包管理体验。
  • 稳定且丰富的标准库:Deno 的标准库已经趋于成熟稳定,其中包含了多种经过严格审计的实用模块,为开发者提供了强大的支持。
  • 私有 npm 注册表的无缝接入:Deno 2 支持私有 npm 注册表,只需通过 .npmrc 文件进行简单配置,即可轻松接入并使用。
  • 工作区与 Monorepo 的全面支持:Deno 2 提供了对工作区和 Monorepo 的全面支持,使得开发者能够更加方便地管理多个项目的依赖关系。
  • 现代 JavaScript 注册表 JSR 的引入:Deno 2 引入了现代、开源的 JavaScript 注册表 JSR,不仅支持 TypeScript 和模块加载,还为开发者提供了更加灵活和高效的包管理选项。
  • 广泛的框架支持:Deno 2 支持多种流行的 JavaScript 框架,如 Next.js、Astro、Angular 等,使得开发者能够在 Deno 环境中轻松使用这些框架进行开发。
  • 性能改进:Deno 在各种真实场景中进行了大量性能优化,提升了启动时间和处理复杂请求的能力。
  • 改进现有功能:
    • deno fmt 现在可以格式化 HTML、CSS 和 YAML。
    • deno lint 增加了 Node 特定规则和快速修复。
    • deno test 支持使用 node:test 编写的测试。
    • deno doc 的 HTML 输出设计改进,搜索功能增强。
    • deno compile 支持代码签名和 Windows 上的图标。
    • deno serve 可以在多个核心上并行运行 HTTP 服务器。

尽管 Deno 在兼容性方面做出了诸多努力,但它始终坚持着“简约而不简单”的设计理念。用户仍然无需依赖任何配置文件即可运行 Deno 代码。新增的包管理命令也并非强制使用,而是为那些需要管理更复杂项目的用户提供了便利。Deno 团队明确表示,他们的目标并非取代 Node.js,而是为 JavaScript 社区提供一个更加现代、高效且功能全面的工具链,让 Web 开发变得更加轻松愉悦。