misakong

misakong

What's New in Deno 2

当 Deno 首次问世时,它以一些新的想法震撼了 JavaScript 和 TypeScript 世界。它是由 Ryan Dahl 创建的,Node.js 的创始人,Deno 旨在解决 Node 的一些问题,例如安全性和模块的工作原理。现在,Deno 2 来了,它有更多的功能和改进,使其成为后端开发的强大选择。
Deno 2 带来了大量更新,使开发更轻松、更快速、更安全。以下是一些关键改进:

向后兼容且面向未来#

Deno 2 可以与 Node 和 npm 顺利协作,这意味着您可以将其与当前的 Node 项目一起使用。例如,克隆 Node 项目后,您可以使用 deno install 快速设置依赖项,或使用 deno fmt 来格式化代码,而无需 Prettier。

Deno 2 处理 package.json、node_modules 和 npm 工作区,因此它可以在任何使用 ESM 的 Node 项目中运行。对于较小的语法问题,只需使用 deno lint --fix。

如果你不喜欢 package.json 和 node_modules 但仍想使用 npm 包,你可以使用 npm: 说明符直接导入它们。这使您可以在单个文件中编写具有 npm 依赖项的程序,而无需额外配置。

对于较大的项目,您可以使用清单文件管理依赖项。在 deno.json 文件中放置一个 npm: 说明符以轻松导入包:

Deno 允许您访问超过 200 万个 npm 模块,包括 gRPC、ssh2、Prisma、temporal.io、duckdb、polars 等复杂包,甚至支持 Node-API 原生插件。

您还可以将 Deno 2 与您最喜欢的 JavaScript 框架一起使用,例如 Next.js、Astro、Remix、Angular、SvelteKit、QwikCity 等。它对于现代 Web 开发来说用途广泛且功能强大。

Deno 现在用作包管理器#

Deno 2 不仅支持 package.json 和 node_modules,还引入了三个关键子命令来轻松管理你的依赖项。

deno install:此命令以闪电般的速度安装您的依赖项。如果您有package.json,它将立即创建一个node_modules文件夹。如果没有 package.json,它将全局缓存所有依赖项。它比使用冷缓存的 npm 快 15%,比使用热缓存的 npm 快 90%。

deno add 和 deno remove:这些命令允许您在 package.json 或 deno.json 中添加或删除包。如果你使用过 npm install 或 npm remove,你会感觉很舒服。

新的 JavaScript 注册表 (JSR)#

今年早些时候,Deno 团队推出了 JSR,这是一个现代的开源 JavaScript 注册表。它改变了游戏规则,因为它原生支持 TypeScript,允许您直接将模块发布为 TypeScript 源代码。JSR 处理跨不同运行时和环境加载模块的复杂任务,仅支持 ESM,从 JSDoc 样式的注释自动生成文档,并与类似 npm 和 npx 的系统一起使用。它甚至可以将 TypeScript 转换为 .js 和 .d.ts 文件。

Deno 标准库现已稳定#

Deno 标准库包含经过全面审查的实用程序模块,适用于从数据操作到 Web 相关逻辑和 JavaScript 特定功能的所有内容。它在 JSR 上可用,并且可以与其他运行时和环境一起使用。

私有 npm 注册表等#

Deno 2 像 Node 和 npm 一样处理私有 npm 注册表。您只需要一个 .npmrc 文件。Deno 会自动检测到它,并允许你拉取私有包,而无需任何额外设置。

Workspaces and Monorepos 工作区和 Monorepo#

Deno 2 支持工作区,可以轻松管理 monorepo。只需列出 deno.json 中的成员目录即可:

成员可以具有单独的依赖项和配置。Deno 还了解 npm 工作区,允许混合 Deno-npm monorepo。您可以使用 deno publish 将工作区成员发布到 JSR。

Long Term Support (LTS) 长期支持 (LTS)#

对于大型组织,审核新版本可能非常耗时。这就是 Deno 从 Deno 2.1 开始引入 LTS 发布频道的原因。此频道将在六个月内接收关键错误修复,以确保为生产使用提供稳定的基础。六个月后,将根据最新的稳定版本创建新的 LTS 分支。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。