安装 Deno
首先,你需要安装 Deno。你可以通过多种方式安装 Deno,但最简单的方法是使用官方提供的安装脚本。在你的终端中输入以下命令:
curl -fsSL https://deno.land/x/install/install.sh | sh
安装完成后,确保将 Deno 的可执行文件添加到你的系统路径中。这通常意味着将 ~/.deno/bin
添加到你的 PATH 环境变量中。
检查安装是否成功
安装完成后,可以通过运行以下命令来检查 Deno 是否已正确安装:
deno --version
如果一切正常,你应该能看到 Deno 的版本信息。
创建一个简单的 CLI 应用
我们将创建一个简单的 CLI 应用,该应用接收一个 URL 作为参数,并输出该 URL 的 HTTP 响应状态码。
初始化项目
首先,我们需要创建一个新的目录来存放我们的项目:
mkdir deno-cli-app cd deno-cli-app
接下来,我们创建一个 mod.ts
文件,这是 Deno 应用的入口点:
touch mod.ts
编写代码
打开 mod.ts
文件并添加以下代码:
-- -------------------- ---- ------- ------ - ----- - ---- ----------------------------------------------- ----- -------- ------ - ----- ---- - ---------- -- ------------ --- -- - ------------------ --- ----- ------- - ----- --- - -------- --- - ----- -------- - ----- ----------- ----------------- ---- --------------------- - ----- ------- - -------------------- ------------------- - - -------
这段代码首先从命令行参数中获取第一个参数,然后尝试访问该 URL 并打印出响应的状态码。
运行应用
要运行这个应用,只需在终端中输入:
deno run mod.ts https://www.example.com
你应该会看到类似如下的输出:
HTTP 状态码: 200
如果 URL 无效或无法访问,你会看到错误消息。
使用 deno install
命令
为了使这个 CLI 工具更易于使用,我们可以将其安装为全局可执行文件。这可以通过 deno install
命令完成。首先,我们需要给我们的脚本起一个名字,并指定它应该被安装在哪里。
在 mod.ts
文件中,添加 export
关键字,使其可以被导出为一个模块:
// mod.ts export async function main(args: string[]) { // ... (保持原有逻辑不变) }
然后,使用 deno install
命令将其安装为一个全局可执行文件:
deno install --allow-net --unstable -A -n mycli mod.ts
这里,--allow-net
允许网络访问,--unstable
开启不稳定功能,-A
表示自动处理所有权限,-n mycli
是设置全局命令名为 mycli
。
使用全局命令
现在你可以直接通过命令行调用 mycli
来运行你的 CLI 应用了:
mycli https://www.example.com
处理命令行参数和选项
为了使 CLI 更加强大,我们可以添加更多的命令行参数和选项。Deno 提供了内置的 flags
模块来帮助我们处理这些参数。
引入 flags
模块
首先,我们需要引入 flags
模块:
import { parse } from "https://deno.land/std@0.148.0/flags/mod.ts";
修改 main
函数
接下来,我们修改 main
函数,以支持更多的命令行参数和选项:
-- -------------------- ---- ------- ----- -------- ------ - ----- ---- - ---------- ----- ----- - ------------ -- ------------ - ------------------ --- ----- ------- - ----- --- - ---------- --- - ----- -------- - ----- ----------- ----------------- ---- --------------------- - ----- ------- - -------------------- ------------------- - -
运行 CLI 应用
现在,你可以通过传递 url
参数来运行 CLI 应用:
mycli --url=https://www.example.com
错误处理和日志记录
为了提高应用的健壮性和用户体验,我们需要添加适当的错误处理和日志记录机制。
添加日志记录
我们可以使用 console.log
和 console.error
来记录日志。为了更好地组织日志,我们可以定义一个专门的日志函数:
function log(message: string) { console.log(message); } function error(message: string) { console.error(message); }
修改错误处理逻辑
接下来,我们更新错误处理部分,以便使用新的日志函数:
try { const response = await fetch(url); log(`HTTP 状态码: ${response.status}`); } catch (error) { error(`请求失败: ${error.message}`); }
总结
通过以上步骤,我们已经创建了一个简单的 Deno CLI 应用,能够接收命令行参数并处理网络请求。我们还学习了如何使用 Deno 的内置模块来简化开发过程,并添加了基本的日志记录和错误处理功能。希望这些内容对你有所帮助!