如何在 Deno 模块中查找依赖项?

阅读时长 5 分钟读完

Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,使用它可以在浏览器之外运行 JavaScript 以及 TypeScript 应用程序。与 Node.js 不同的是,Deno 不使用 npm 来管理依赖项,而是使用类似浏览器的方式将其放在 JavaScript 文件中。

在 Deno 中,在导入模块时,可以使用 URL 来定位模块的位置,这些 URL 必须指向远程服务器或文件系统目录之一。Deno 内置了一个名为 deno.land/std 的模块,其中包含了许多有用的模块用来处理各种任务,例如处理文件系统和网络请求。

但是,当你使用 Deno 开发应用程序时,你可能会遇到需要依赖于其他第三方库的情况。在本文中,我们将探讨如何在 Deno 模块中查找依赖项。

Deno 引入第三方库的几种方式

当 Deno 开发者想引入第三方库时,有几种可行的方法:

1. 直接导入本地文件

这是最简单的方式,如果你已经将第三方库下载下来,并放在某个文件夹下,你可以像导入本地模块一样 import 导入。例如:

然后就可以正常使用 hello 模块了。

2. 导入 URL

如果你在 Web 上找到了某个给定的 URL,你也可以将其导入到你的应用程序中。例如:

然后就可以像使用本地模块一样使用 someFunction 模块了。

3. 使用 Deno CLI

Deno CLI 提供了一种使用 deno cache 命令缓存本地依赖项的方法,例如:

运行此命令将会下载或更新 https://deno.land/std/http/server.ts,并将其缓存到本地机器上,这意味着在之后的运行时可以快速访问该模块。

4. 使用 Deno.land/x

与 npm 一样,Deno.land/x 是一个 Deno 代码库的集合,允许开发者使用命令行安装和更新第三方库。例如:

这将导入 Deno.land/x 代码库中的 http 模块。

使用 require 对象和 HTML 规范

Deno 还支持以下功能:

require 对象

Deno 中也提供了类似 Node.js 中的 require 对象。它可以对文件和文件夹进行导入,例如:

HTML 规范

Deno 还支持 HTML 规范中的 <script type="module"> 标签,例如:

使用 import_map.json

Deno 还提供了一种用于声明从哪个 URL 加载模块的文件的方式,称为 import_map.json。这个 JSON 对象列出了模块名称的别名以及指向实际模块 URL 的映射。

例如,下面的 import_map.json 映射了模块名 vue 到其实际 URL:

然后,我们可以像这样导入模块:

运行时,Deno 将查找并下载 https://cdn.jsdelivr.net/npm/vue@3.0.11/dist/vue.esm-browser.js,然后将其添加到应用程序中。

总结

本文介绍了在 Deno 模块中查找依赖项的几种方法,其中包括直接导入本地文件、导入 URL、使用 Deno CLI、使用 Deno.land/x、require 对象和 HTML 规范,以及使用 import_map.json。这些方法使得开发者能够根据自己的需要编写便捷的应用程序,并为其添加所需的依赖项。

希望本篇文章能够帮助您更好地掌握在 Deno 中查找和管理依赖项的技巧。下面是一个示例代码,它演示了如何使用上述技术进行导入。

-- -------------------- ---- -------
-- ------
------ - ----- - ---- -----------------------

-- --- --
------ - ------------ - ---- ---------------------------------

-- -- ---- ---
---- ----- -------- ------------------------------------

-- -- -----------
------ - ----- - ---- ----------------------------------

-- ------- --
----- --- - ---------------------------

-- ---- --
------
  ------
    ------- ------------- ------------------------
  -------
  -------------
-------

-- ---------------
-
  ---------- -
    ------ -----------------------------------------------------------------
  -
-

祝你在 Deno 的开发中愉快!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6494c12f48841e989421cf3d

纠错
反馈