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

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

蚊子的前端博客

微说 | 有的人觉得只要不考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 开发变得更加轻松愉悦。