Skip to content

备稿计划: 使用 deno 制作 CLI 工具最佳实践 (草稿) #175

Description

@iugo

直接运行

在第一行增加 #!/usr/bin/env -S deno run --allow-all 即可.

注意文件需要可执行权限, 使用 chmod +x {file_path} 增加可执行权限.

读取参数

命令行工具的主要特点就是可以获取参数. 可以使用 Deno.args 获取.

使用标准库

使用标准库可以避免重复造轮子, 节约我们的时间. Deno 关于命令行工具的标准库在: https://jsr.io/@std/cli

parseArgs

解析的例子如:

[ "pre", "-A", "--b=c", "--de", "fg", "post" ] // 输入
{ _: [ "pre", "post" ], A: true, b: "c", de: "fg" } // 输出

错误处理

对于命令行程序来说, 遇到预期中的错误可以使用 Deno.exit(1) 退出, 而不是抛错.

打印信息着色

可以使用 Web API, 文档为: https://developer.mozilla.org/en-US/docs/Web/API/console#styling_console_output

比如:

const CSS_STYLE_ERROR = 'color: red; font-style: italic; padding: 2px';
const CSS_STYLE_EMPTY = '';

console.error(
  '%cerr:%c message',
  CSS_STYLE_ERROR,
  CSS_STYLE_EMPTY,
);

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions