什么是 Deno
Deno 是一个基于 JavaScript 和 TypeScript 的运行时,它的目标是提供更安全、更简单的开发体验,并且能够轻松地管理依赖。与 Node.js 不同的是,Deno 不依赖于 npm 来管理依赖,它自带标准库和内置的模块,可以直接使用 URL 来导入第三方模块。
Deno 的优势
Deno 相对于 Node.js 具有如下优势:
沙盒环境:Deno 支持安全的沙盒环境,可以禁止脚本访问文件系统、网络和环境变量等敏感信息,可以有效避免潜在的安全问题。
TypeScript 支持:Deno 内置 TypeScript,无需额外安装编译器,支持 JavaScript 和 TypeScript 混合编程。
自带依赖管理:Deno 自带 import 机制,方便管理第三方模块,不需要单独安装 npm。
如何使用 Deno 管理依赖
安装 Deno
首先需要安装 Deno,可以在官网(https://deno.land/)下载,也可以使用包管理器(如 Homebrew 或 Chocolatey)安装。
导入第三方模块
在 Deno 中,可以通过 URL 直接导入第三方模块,例如:
import { serve } from "https://deno.land/std/http/server.ts"
这行代码从 Deno 标准库中导入了一个名为 serve
的函数,用于创建 HTTP 服务器。
导入本地模块
类似于 Node.js,Deno 也支持导入本地模块。例如,可以将模块保存在本地文件中,然后通过相对路径导入:
import { add } from "./math.ts"
这里的 math.ts
是一个本地文件,包含了一个名为 add
的函数。需要注意的是,Deno 需要在运行时显式地授予脚本读取文件系统的权限,例如:
deno run --allow-read index.ts
冻结依赖
在使用 Deno 管理依赖时,我们可以将依赖冻结到一个单独的文件中,以便日后的复用。Deno 提供了 deno info
命令来查看依赖信息,并且可以使用 deno cache
命令来缓存依赖,例如:
deno cache --lock=lock.json --lock-write index.ts
这个命令将根据 index.ts
中的依赖生成一个 lock.json
文件,其中包含了所有依赖的版本信息。这个文件可以提交到版本控制系统中,以便协作开发。
安装本地依赖
如果需要安装本地依赖,可以使用 deno install
命令,例如:
deno install --allow-read --name=mytool https://deno.land/x/mytool/mod.ts
这个命令将安装 mytool
模块,并将其设置为可执行文件。需要注意的是,如果需要读取文件系统的权限,需要在命令中显式地授予。
示例代码
下面是一个示例代码,用于创建一个 HTTP 服务器并响应请求:
import { serve } from "https://deno.land/std/http/server.ts" const server = serve({ port: 8080 }) console.log("http://localhost:8080/") for await (const req of server) { req.respond({ body: "Hello Deno!\n" }) }
需要运行以下命令来启动服务器:
deno run --allow-net index.ts
总结
Deno 是一个具有革新意义的运行时,可以帮助我们更安全、更简单地管理依赖。在使用 Deno 时,需要注意保障文件系统等敏感信息的安全,并且需要掌握导入第三方模块和本地模块的方法。同时,Deno 也提供了便利的命令来缓存、冻结和安装依赖。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64552840968c7c53b08cebbb