Deno 团队发布 JSR,一个新的 JavaScript 包注册表

Deno 团队发布 JSR:新一代 JavaScript 注册表

Deno 团队最近发布了 JSR 的 Beta 版本,这是一个新的 JavaScript 注册表,旨在更好地适应现代开发需求,并统一当前碎片化的 JavaScript 生态系统。JSR 的主要特点包括支持原生 ESM(JavaScript 模块系统)、原生接受 TypeScript 包,并兼容多种 JavaScript 运行时(如 Node.js、Deno、Bun、浏览器以及各种无服务器环境)。

JSR 的设计目标

JSR 的核心理念是支持 JavaScript 在所有环境中的运行,并提供一个与运行时无关的 JavaScript 和 TypeScript 代码注册表。目前,JSR 已经支持 Deno 和其他使用 node_modules 的 npm 环境,这意味着 Node.js、Bun、Cloudflare Workers 等依赖 package.json 管理的项目都可以与 JSR 互操作。

JSR 与 npm 的关系

尽管 JSR 旨在取代 npm,但它仍然设计为与基于 npm 的项目和包互操作。JSR 包可以在任何使用 node_modules 文件夹的运行时环境中使用,并且 JSR 模块可以导入 npm 的依赖项。

包评分系统

JSR 引入了包评分系统,鼓励包发布者遵循最佳实践。评分标准包括:为每个导出的符号提供完整的 JSDoc 文档、包含优化的类型声明以加速类型检查、以及支持多运行时兼容性。这些因素共同决定了包的排名。

发布流程示例

开发者可以通过 JSR 发布 TypeScript 包,发布流程包括创建三个文件:jsr.json 元数据文件、TypeScript 源代码文件以及 README.md 文件。jsr.json 文件用于指定包的模块暴露给消费者的路径。发布时,在 Deno 环境中使用 deno publish,在 Node.js 环境中使用 npx jsr publish

Deno 标准库与 JSR

Deno 标准库最近也已上线 JSR,开发者可以参考在线文档优化包的排名评分。此外,Deno 团队还发布了一篇详细介绍如何构建 JSR 的博客文章,帮助开发者更好地理解和使用这一新工具。

总结

JSR 是 Deno 团队推出的新一代 JavaScript 注册表,旨在通过支持 ESM、TypeScript 和多运行时兼容性,提升开发者体验、性能、可靠性和安全性。尽管它与 npm 兼容,但通过引入包评分系统,鼓励开发者遵循最佳实践,推动 JavaScript 生态系统的进一步发展。

阅读 45
0 条评论