在 Deno 中使用 npm 模块是非常常见的。npm 是一个免费的软件包管理系统,它允许开发者从 npm 仓库下载和安装软件包。因为 Deno 也是一门基于 JavaScript 的运行时,因此使用 npm 模块可以让我们在 Deno 中更加便利地编写代码。
如何处理 npm 依赖
在 Deno 中,可以使用两种方式来处理 npm 依赖。
使用 import
在 Deno 中,可以使用 import
关键字来引入 npm 包。当 Deno 遇到 import
语句时,它会去远程下载所需的模块(如果之前没有下载过),然后将其构建为一个可执行文件。
下面是一个使用 import
引入 axios
npm 包的示例代码:
import axios from "https://cdn.skypack.dev/axios@0.21.2/dist/axios.min.js"; const response = await axios.get('https://jsonplaceholder.typicode.com/todos/1'); console.log(response.data);
使用类似于 Rust 的 deno 配置文件
另一种处理 npm 依赖的方式是在 Deno 配置文件中声明。类似于 Rust 的 Cargo.toml 文件,Deno 通过一个名为 deps.ts
的文件来处理依赖关系。
在 deps.ts
中定义一组键值对,每个键值对表示一个模块的来源和版本号。例如:
// deps.ts export { h, Fragment, VNode } from "https://cdn.skypack.dev/preact?dts"; export { useState } from "https://cdn.skypack.dev/preact/hooks?dts";
deps.ts
文件可以导出模块,这些模块可以像任何其他模块一样被引用和使用。那个?dts
只是为了在vscode是识别。
引用 deps.ts
中声明的模块时,可以直接使用相对路径:
// main.ts import { h, Fragment } from "./deps.ts";
这样,当 main.ts
被执行时,Deno 会根据 deps.ts
中声明的依赖关系自动下载和构建所需的 npm 包。
示例代码
下面是一个完整的 Deno 应用程序,演示如何使用 Deno 处理 npm 依赖:
-- -------------------- ---- ------- -- ------- ------ - -- --------- ----- - ---- ------------------------------------- ------ - -------- - ---- ------------------------------------------- -- ------- ------ - -- --------- ----- - ---- ------------ ------ - -------- - ---- ------------ ---- ----- - - ------ ------ -- ----- --- - -- -- - ----- ------- --------- - ----------------- ------ - --- ----- ----------- - -- -- - ---------- ------ ----------- - - --- -- ------ - ---------- ---------- ---------- ------ ------- ------------- --------- ------- --------------------------- ------------ ----------- -- -- --------------------- ------ -- ---- ------- ----- --------------------- ----- ---- -- ----- -- - ------------- -------- --- --------- --------------- ----------- --- ----- - --------- ----- ------ ------ ------------- ------------- ------- ------ --------- ------- ------- -- --- ---展开代码
这个应用程序使用 deps.ts
文件来声明依赖关系,其中包括 preact
的虚拟 DOM 库和 hooks 库。它还定义了一个函数组件,用于在点击按钮时更新计数器,并将组件的返回值包装在 HTML 模版字符串中。最后,该应用程序通过 Deno.listenAndServe
函数创建了一个 HTTP 服务器,用于服务该模板字符串,在浏览器中渲染组件。
指导意义
使用 npm 模块在 Deno 中编写 Web 应用程序是一项非常有用的技能。无论是使用 import
还是 deps.ts
文件,这些知识都可以帮助你在 Deno 中快速、灵活地构建应用程序。因此,熟练掌握以上两种方式可以提高你在 Deno 中编写可维护、可扩展的 Web 应用程序的能力。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c52be26e1fc40e36e882c7