通过 CDN 使用 npm
大多数开发人员目前通过使用许多 CDN 之一导入 npm 模块来在 Deno 中使用它们。您可以在 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/react@17.0.2";
或者获取次要版本的最新补丁版本
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 的信息。
查看 esm.sh 主页 以获取有关如何使用 CDN 及其功能的更多详细信息。
UNPKG
UNPKG 是最著名的 npm 包 CDN。对于包含 ES 模块分发(例如浏览器)的包,其中许多可以直接从 UNPKG 使用。也就是说,UNPKG 上的所有内容都可以在更 Deno 友好的 CDN 上使用。
JSPM
jspm.io CDN 专为以与导入映射配合使用的方式提供 npm 和其他注册表包作为 ES 模块而设计。虽然它目前不针对 Deno,但由于 Deno 可以使用导入映射,因此您可以使用 JSPM.io 生成器 生成要使用的所有包的导入映射,并让它们从 CDN 提供服务。