通过 CDN 使用 npm
目前大多数开发者在 Deno 中使用 npm 模块,通过许多 CDN 之一导入它们。您可以在 Deno 代码或直接在浏览器中作为 ES 模块引用 CDN URL。这些 CDN URL 可重复使用 - 它们还提供有关如何在 Deno、浏览器等中使用的说明。
从 Deno 1.28 版本开始,Deno 还提供对 npm:
指定符 的稳定支持,这是一种在 Deno 中使用 npm 模块的新方法。
从 Deno 1.31 版本开始,Deno 支持解析 来自 package.json 的 npm 依赖项(如果存在)。
esm.sh 跳转到标题
esm.sh 是专门为 Deno 设计的 CDN,尽管它解决了 Deno 的问题,也使其成为一个通用的 CDN,用于将 npm 包作为 ES 模块捆绑包访问。 esm.sh 使用 esbuild 来获取任意 npm 包并确保它可以作为 ES 模块使用。在许多情况下,您只需将 npm 包导入到 Deno 应用程序中即可
import React from "https://esm.sh/react";
export default class A extends React.Component {
render() {
return <div></div>;
}
}
esm.sh 支持使用包的特定版本,以及 semver 版本的包,因此您可以以类似于在 package.json
文件中导入时的方式表达您的依赖项。例如,要获取特定版本的包
import React from "https://esm.sh/[email protected]";
或者获取次要版本的最新补丁版本
import React from "https://esm.sh/react@~16.13.0";
或者获取子模块
import { renderToString } from "https://esm.sh/react-dom/server";
或者导入普通文件
import "https://esm.sh/tailwindcss/dist/tailwind.min.css";
esm.sh 还自动设置一个 Deno 识别的标头,允许 Deno 检索包/模块的类型定义。有关此工作原理的更多详细信息,请参阅本手册中的 使用 X-TypeScript-Types
标头。
查看 esm.sh 主页,以获取有关如何使用 CDN 及其功能的更多详细信息。
UNPKG 跳转到标题
UNPKG 是最著名的 npm 包 CDN。对于包含 ES 模块分发的包(例如浏览器),其中许多可以直接从 UNPKG 使用。也就是说,UNPKG 上的所有内容都可以在更友好的 Deno CDN 上获得。
JSPM 跳转到标题
jspm.io CDN 专为以与导入映射配合使用的方式提供 npm 和其他注册表包作为 ES 模块而设计。虽然它目前没有针对 Deno,但由于 Deno 可以利用导入映射,因此您可以使用 JSPM.io 生成器 生成您要使用的所有包的导入映射,并让它们从 CDN 提供服务。