Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它具有许多令人兴奋的功能,包括内置的模块管理器。这个模块管理器是如何工作的呢?在本文中,我们将深入探讨 Deno 的模块管理器的工作原理以及如何使用它来管理您的项目依赖项。
Deno 的模块管理器
Deno 的模块管理器非常简单,它允许您在您的代码中引用其他模块。与 Node.js 不同,Deno 不需要 package.json 文件或 node_modules 目录来管理依赖项。相反,Deno 依赖于 URL 来引用模块。
例如,要引用标准库中的模块,您可以使用以下语法:
import { serve } from "https://deno.land/std/http/server.ts";
这将从 https://deno.land/std/http/server.ts 下载并导入 serve 函数。请注意,您可以使用任何 URL 来引用模块,包括本地文件系统中的文件。
模块缓存
Deno 的模块管理器还具有缓存功能。当您第一次引用一个模块时,它将被下载并缓存在本地。下次您引用该模块时,它将从缓存中加载,而不是再次下载。
缓存目录位于 $HOME/.deno 目录下。您可以使用以下命令查看缓存目录的位置:
$ deno info
模块权限
Deno 的模块管理器还与 Deno 的权限系统集成。当您引用一个模块时,Deno 将检查该模块是否具有所需的权限。例如,如果您引用一个需要网络访问权限的模块,Deno 将提示您授予网络访问权限。
以下是一个示例,其中我们使用 Deno 标准库中的 serve 函数来启动一个 Web 服务器:
import { serve } from "https://deno.land/std/http/server.ts"; const server = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of server) { req.respond({ body: "Hello World\n" }); }
当您第一次运行此代码时,Deno 将提示您授予网络访问权限:
$ deno run --allow-net server.ts
模块版本控制
Deno 的模块管理器还支持版本控制。您可以使用 URL 的查询字符串来指定要下载的模块版本。例如,以下语法将下载版本 0.50.0 的标准库:
import { serve } from "https://deno.land/std@0.50.0/http/server.ts";
总结
Deno 的模块管理器非常简单,但也非常强大。它允许您轻松地管理您的项目依赖项,并与 Deno 的权限系统集成。在开始使用 Deno 开发项目之前,建议您熟悉 Deno 的模块管理器的工作原理和用法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c039e4add4f0e0ff9f9fc2