Deno 如何管理依赖项和模块?

阅读时长 4 分钟读完

Deno 是一个新兴的现代化 JavaScript 和 TypeScript 运行时,它使用 V8 引擎和 Rust 编写。它的目标是成为更安全、更简洁、更稳定的 Node.js 替代品。Deno 在管理依赖项和模块方面与 Node.js 有很大的不同。

关于 Deno

Deno(在中文中发音为 /ˈdiː.noʊ/)是一种基于 V8 引擎和 Rust 编写的运行时。它由 Node.js 创始人 Ryan Dahl 开发,并于 2018 年首次发布。

与 Node.js 不同,Deno 可以直接执行 TypeScript 文件,因为它内置了 TypeScript 编译器。而且,Deno 的安全性比 Node.js 更高,它通过沙箱技术隔离了文件系统和网络访问,因此不允许在默认情况下使用它们。如果需要访问这些资源,则需要使用 --allow-write--allow-network 等选项。

Deno 的依赖项和模块管理与 Node.js 有很大的不同。在 Node.js 中,您可以使用 npmyarn 管理依赖项,并使用 require() 函数导入模块。但是,在 Deno 中,您不能使用 npmyarn,而是需要在导入模块时指定其 URL。

假设我们需要使用 axios 库来请求 HTTP 资源。在 Node.js 中,我们可以使用以下命令安装依赖项:

然后在代码中导入它:

在 Deno 中,我们不需要使用 npm 安装它。相反,我们可以在代码中使用以下语法导入它:

Deno 支持使用 HTTP 或 HTTPS 协议从远程获取模块,也可以从本地文件系统获取模块。

默认情况下,Deno 在每次执行脚本时都会重新下载模块。如果您希望缓存模块以避免重复下载,则可以使用 --lock 标志将依赖项存储在 lock.json 文件中。当下次执行脚本时,Deno 将尝试重新使用先前下载的依赖项。

Deno 还提供了一个公共模块仓库 deno.land/x,它是一个社区驱动的模块生态系统。它允许您使用 URL 导入模块,而不必担心在本地文件系统中安装、管理、发布或升级它们。

示例代码

下面是一个演示如何使用 Axios 库请求 HTTP 资源的示例代码:

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

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

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

在运行脚本之前,请确保您已安装 Deno 运行时。要运行脚本,请在终端中执行以下命令:

这将在默认情况下启用对网络访问的许可。如果您需要访问文件系统,则需要使用 --allow-write 标志,例如:

结论

Deno 是一个非常有前途的 JavaScript 和 TypeScript 运行时。虽然与 Node.js 相比,它仍处于相对较早的阶段,但它在安全性、依赖项和模块管理等方面具有很大的不同。Deno 使用沙箱技术隔离资源,并在导入模块时使用 URL。此外,它还提供了一个公共模块仓库 deno.land/x,以便社区共享和管理模块。

虽然 Deno 有一些挑战,例如缺少某些 Node.js 依赖项和库,但随着它在 JavaScript 社区中的普及,我们可以期待更多的突破和发展。如果您想学习更多有关 Deno 的知识,请浏览官方文档以及社区网站和博客。

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

纠错
反馈