关于 HTTP 导入我们弄错了什么 | Deno

主要观点:

  • HTTP 导入一直是 Deno 的关键特性,但存在诸多问题,如 URL 过长、依赖管理困难、重复依赖、可靠性问题等。
  • 为解决这些问题,Deno 引入了 Import Maps 和 JSR,Import Maps 可恢复短且易记的标识符并管理多个文件的版本,JSR 是理解语义版本控制的中心化仓库,能解决可靠性和重复依赖问题。
  • 现有使用 HTTP 导入的 Deno 脚本仍可工作,现在推荐使用 Import Maps 替代deps.ts,使用 JSR 替代deno.land/x和/或 npm。
  • Deno 2 即将发布,包含 JSR 共享模块、语义版本控制、Import Maps 管理依赖等特性,还有工作区和 monorepo 支持、深度 Node/npm 兼容性等,9 月发布,可通过DENO_FUTURE=1标志平滑迁移。

关键信息:

  • HTTP 导入最初旨在用分布式系统替代 npm,但存在多种问题。
  • Import Maps 可解决 URL 过长和管理版本问题,JSR 可解决可靠性和重复依赖问题。
  • JSR 是理解语义版本控制的中心化仓库,继承 HTTP 导入的优点。
  • Deno 2 即将发布,包含多种改进特性。

重要细节:

  • 如长 URL 在大型项目中会使代码库混乱,Node 的导入更短更易记。
  • deps.ts管理依赖繁琐,URL 缺乏语义版本控制,易导致重复依赖。
  • 去中心化模块系统导致可靠性问题,JSR 可避免。
  • 现有 Deno 脚本可继续使用 HTTP 导入,新系统中使用 Import Maps 和 JSR 更简洁,且可通过 import map 使导入标识符更短、管理版本更易。
  • Deno 2 包含多种特性,9 月发布,可通过DENO_FUTURE=1标志平滑迁移,有一些 minor breaking changes。
阅读 9
0 条评论