当前位置: 首页 > news >正文

【总结】1591- 从入门到精通:使用 TypeScript 开发超强的 CLI 工具

ffcd2cd0647181f5408f37ae08b989c5.jpeg

作为一名开发者,掌握 CLI 工具的开发能力是非常重要的。本文将指导你如何使用 TypeScript 和 CAC 库开发出功能强大的 CLI 工具。

快速入门

首先,需要先安装 Node.js 和 npm(Node Package Manager),然后在项目目录中创建一个 package.json 文件:

npm init -y

接下来安装 CAC 和 TypeScript:

npm install cac typescript --save-dev

现在我们就准备好开始我们的 CLI 项目了。

简单示例

让我们创建一个简单的 CLI 工具,可以接受用户的名字并输出“Hello, Pingan8787”。

首先,创建一个名为 index.ts 的文件,然后输入以下代码:

import cac from "cac";const cli = cac();cli.command("greet [name]", "Greet user with his name").action((name) => {console.log(`Hello, ${name || "unknown"}`);
});cli.parse();

然后,运行以下命令以编译 TypeScript 代码:

tsc index.ts

最后,我们可以在终端中运行以下命令:

node index.js greet Pingan8787

我们将会看到输出“Hello, Pingan8787”。

实际案例

让我们考虑一个更复杂的例子,我们将创建一个能够计算数学表达式的 CLI 工具。

首先,我们需要安装一个简单的计算库,如「mathjs」:

npm install mathjs

然后,在 mathjs.ts 文件中添加以下代码:

import cac from "cac";
import math from "mathjs";const cli = cac();cli.command("calculate [expression]", "Calculate a math expression").action((args) => {console.log(`Result: ${math.eval(args.expression)}`);});cli.parse();

运行以下命令编译代码:

tsc mathjs.ts

最后,我们可以在终端中运行以下命令:

node index.js calculate [Expression]

我们将会看到输出「Result: [Expression Result]」。

示例补充:commander

当然,也可以使用 commander 库开发 CLI 工具时,下面是一个使用 commander 库开发的简单 CLI 工具的代码示例:

#!/usr/bin/env nodeimport { Command, CommanderStatic } from "commander";const program: CommanderStatic = new Command();program.version("0.1.0").description("A simple CLI tool built with CAC library").option("-n, --name [value]", "Your name").action((options) => {console.log(`Hello, ${options.name || "world"}!`);});program.parse(process.argv);

在上面的代码中,我们创建了一个简单的 CLI 工具,它接受一个名字作为参数,并打印一条消息。

该工具参数:

  • program.version 方法指定版本号;

  • program.description 方法指定描述;

  • program.option 方法指定选项;

  • program.action 方法指定要执行的操作。

我们可以通过运行 node filename.ts 来测试该工具,并通过添加不同的选项来查看不同的输出结果。

这仅仅是一个简单的示例,我们可以通过继续学习和实践来扩展其功能。希望大家能从这个示例中受益。

拓展使用

CAC 还有许多其他有用的特性,比如选项和参数,帮助信息,自定义错误处理等。我们可以在官方文档中了解更多内容:https://github.com/cacjs/cac。

高级主题和拓展 CLI 工具

如果你想进一步深入了解 CLI 工具的开发,可以阅读以下内容:

  • 如何构建 CLI 工具:https://developer.atlassian.com/blog/2019/02/how-to-build-a-cli-tool-with-node-js/

  • 如何使用 Commander.js 开发 CLI 工具:https://github.com/tj/commander.js/

  • 如何使用 Oclif 开发 CLI 工具:https://oclif.io/

  • 如何使用 Ink 开发 CLI 工具界面:https://github.com/vadimdemedes/ink

以上内容可以帮助你深入了解 CLI 工具的开发,并学习如何开发出更加复杂的 CLI 工具。

总之,CLI 工具是一种功能强大且易于使用的工具,可以帮助我们在命令行环境中快速完成任务。使用 CAC 库和 TypeScript 开发 CLI 工具是一种不错的选择,因为它简单易用且功能强大。希望本文能够帮助你快速入门 CLI 工具的开发,并取得成功。

总结

在本文中,我们介绍了如何使用 TypeScript 和 CAC 库开发出功能强大的 CLI 工具。通过简单示例和实际案例,我们可以了解到 CLI 工具的基本用法和拓展使用方法。

彩蛋

大家看到这边,有发现这篇文章如何?如果我说,这篇文章是我使用最近超级网红“ChatGPT”写的,你们会惊讶吗?其实我是在 ChatGPT 写好的文章进行修改编辑。 

感慨一下!~~

往期回顾

#

如何使用 TypeScript 开发 React 函数式组件?

#

11 个需要避免的 React 错误用法

#

6 个 Vue3 开发必备的 VSCode 插件

#

3 款非常实用的 Node.js 版本管理工具

#

6 个你必须明白 Vue3 的 ref 和 reactive 问题

#

6 个意想不到的 JavaScript 问题

#

试着换个角度理解低代码平台设计的本质

4af8ceb451157298569829b82765d505.gif

http://www.lryc.cn/news/968.html

相关文章:

  • 【Java】int和Integer的区别?为什么有包装类?
  • 【LeetCode】石子游戏 IV [H](动态规划)
  • 修改Vue项目运行的IP和端口
  • 【C++提高编程】map/ multimap 容器详解(附测试用例与结果图)
  • laravel操作redis和缓存操作
  • 目标检测论文阅读:GaFPN算法笔记
  • 【转】Generative Pretrained Transformer
  • day34|343. 整数拆分、96.不同的二叉搜索树
  • WeNet - 初识
  • 为什么各个企业都在创建FAQ、常见问题页面?
  • 【React-Router】路由传参,路由嵌套,手动导航,路由文件配置
  • 面向对象分析与设计(OOAD)
  • 数据库调优
  • OpenStack云平台搭建(3) | 部署Glance
  • 软件评测师考试总结
  • 小白系列Vite-Vue3-TypeScript:009-屏幕适配
  • 查找企业微信聊天记录,会话存档有多重要
  • C语言经典编程题100例(1-20)
  • 小白系列Vite-Vue3-TypeScript:008-安装配置mock
  • OnGUI Box 控件||Unity 3D OnGUI 常用控件
  • shiro721——CVE-2019-12422
  • 爬虫JS逆向思路 - - 扣JS(data解密)
  • Android 进阶——Framework 核心之Binder 相关预备理论(一)
  • 【23种设计模式】结构型模式详细介绍
  • 接口自动化实战-postman
  • 前端跨域方案简单总结
  • 【HTML】HTML 表格 ② ( 表头单元格标签 | 表格标题标签 )
  • 常用的辅助类2(StringBuilder、StringBuffer、处理时间相关的类、对象比较器)
  • anaconda下pytorchCPU GUP安装及问题记录
  • 香港中文大学MISC Lab GNN团队: 异质图神经网络研究进展从谱的角度看待(图)对比学习(图自监督学习)