一、为什么?
有时候我们会使用不同的操作系统,在它们之间进行切换,但是不同的操作系统的命令行的名字可能不一样。例如:linux 使用 touch 创建一个文件,windows 种使用 ni 命令创建文件,这个使得一个初学者在不同的操作系统之间切换时,需要掌握不同的命令,开始时候非常让人困惑。
那么我们能对这些常用的命令进行跨端的封装吗?答案是能够的,我们可能不需要 linux 强大的命令,其实在开发过程中,需要用的命令其实并不多。
二、目标
icall-cli 的目标是满足开发者(前、后端开发者,尤其是 JavaScript/TypeScript)日常的跨端 cli 的需求。为开发者提供 cli 层面的 polyfill。
三、安装
首先需要 Node.js 环境,通过 npm 来安装
npm i -g icall-cli
安装之后,我们就能使用 icall
命令。
四、常用命令集成
基于 linux 的命令为主要导向,使用 windows cmd/powershell 命令作为别名,构建命令。例如:touch 创建文件,mv 移动文件等等文件相关的操作,这些文件相关的操作。
- cat 输出指定文件的内容
- cp 复制文件/文件夹
- mkdir 创建文件夹
- rm 删除文件夹
- touch 创建文件
五、集成了一些工具
目前在 icall 中集成了常用社区命令,为了更加方便我们的开发:
- cowsay 输出有意思的内容
- base64 依据输入的字符串输出 base64 码
- hash 依据输入的内容输出 hash 码
- ipconfig 输出当前系统的 ipconfig 或者 ifconfig
- ping 检查是否在线
- qrcode 根据地址字符串输出二维码
- top 当前的进程
- tree 查看当前文件夹构造
这些命令其实都是用 Node.js 的文件系统和 Node.js 生态中的库一起生成一个符合跨端的工具集合。
六、示例
基本的使用方法
icall touch your_name.tsx
创建一个 xxx
文件。
集成社区命令
icall cowsay hi icall ~
得到如下的输出结果
____________
< hi icall ~ >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
七、开发文档
开发文档目前使用 vitepress 构建在 vercel 平台并部署,感兴趣的小伙伴可以访问 icall-cli。
八、贡献代码
git clone https://github.com/yyong008/call-cli
如果你也对 Node.js 跨端 CLI 感兴趣,期待社区中有能力,有时间的小伙伴一起维护此项目。当然你也可以直接提 Issue
技术方案
本项目采用以下技术方案:
- commander 作为命令管理工具
- unbind 打包 TS 文件
- vitepress 作为文档工具
- vitest 测试工具
- prettier 作为格式化工具
- changeset 作为版本管理工具
十、小结
本文主要讲解我们在不同平台使用 CLI 会遇到的困惑,然后然后自己手动基于 Node.js 和生态实现一个工具集合,方便我开发,并希望社区中感兴趣的小伙伴,一起使用和维护代码。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。