介绍:Pika CDN + Deno

2025-06-10

介绍:Pika CDN + Deno

Deno不再只支持 TypeScript!你知道吗,你还可以使用 Deno 从 npm 导入并运行 JavaScript 包?

只要你的包以ESM(JavaScript 的原生模块语法)编写,并且不依赖任何 Node 特有的行为/导入,Deno 就可以轻松地从任何 URL 加载并运行 JavaScript。Pika 已经在 npm 上托管了超过 80,000 个 ESM 包的搜索目录,并且每天都会添加更多。

所有这些使得Pika CDN(我们为 npm 生态系统打造的现代化 CDN)与 Deno 完美契合。使用 Pika CDN,您可以import从单个托管 URL 获取任何 npm 包。这一直以来都非常适合网站,但现在它更适合 Deno。这是因为 Deno 没有包管理器,因此从 URL 导入包的功能已经内置在 Deno 的工作流程中。

介绍“X-TypeScript-Types”

但是类型声明怎么办呢?毕竟,Deno 是一个 TypeScript 运行时。如果@types/每次导入 JS npm 包时,都无法获取每个 npm 包中(或通过 DefinitelyTyped 社区生成的项目)存在的类型声明,那就太可惜了。

好吧,现在你可以了!

Deno + Pika 示例

与 Deno 团队合作,在最新发布的 v0.32.0 版本中,Pika CDN 现在为每个提供类型声明的包托管类型声明!从我们的 CDN 导入 npm 包,Deno 将自动获取其类型声明。

有了这个新功能,当包使用不正确时,Deno 会自动发出警告,从而为您的程序提供额外的稳定性。

这一切都归功于 Deno 新增的“X-TypeScript-Types”响应头支持。具体工作原理如下:

  1. 托管类型声明:为了让 Deno 读取包的类型声明,它们必须存在于我们的 CDN 上的某个位置。我们会在构建时查找包的类型文件,然后将它们托管在/types/*包 URL 子路径下。
  2. 告诉 Deno 在哪里找到它们: CDN 上每个包含有效类型的包都会响应一个X-TypeScript-Types标头。当 Deno 从导入中看到此标头时,它会自动获取类型并将它们连接到导入。

如果 npm 上没有类型声明,我们就不会发送标头。在这种情况下,Deno 会读取 JS 文件并尽力猜测其接口的样子。我们可以尝试在 CDN 上做同样的事情,但目前我们非常有信心 Deno 在这方面比我们做得更好 :)

激动人心的时刻!

如果没有@kitsonk和整个Deno 贡献者团队的努力,这一切都不可能实现

经过这些改进,Pika CDN现在是获取在 Deno 上运行的 npm 软件包的最佳选择。这是我们引以为豪的一点,也是我们在 Deno 向 v1.0 版本迈进的过程中不断改进的目标。这真是令人激动的时刻!

我们迫不及待地想看到您使用 Deno 和我们的 CDN 构建的成果。如有任何疑问、评论以及您构建成果的链接,欢迎在 Twitter 上联系我们。

✌️
- @fks

鏂囩珷鏉ユ簮锛�https://dev.to/pika/introducing-pika-cdn-deno-p8b
PREV
如何调试任何东西
NEXT
React Hooks 工厂