开发一个命令行工具

系列 -
警告
本文最后更新于 2023-03-30,文中内容可能已过时。

CLI 全称是 Command Line Interface,是一类通过命令行交互的终端工具。

👴🏻:可视化的工具所见即所得,不好吗?
👩🏻‍🌾:好,但是牺牲了效率。比如 git,且不说切换工具的时间我都已经提交完代码了,稍微有些复杂点的动作,还得是命令行来的快;另外命令能让自己每一步都能做到心里有数,踏实,同意的举爪 🙋🏻‍♀️

和其他语言比如 python 一样,在 shell 中执行 JS 命令是需要指定脚本解释器的,这就需要借助 shebang,在脚本文件头部:

sh

#!/usr/bin/env node

可以通过 which env 来查看 env 命令路径,使用它来指定脚本解释器。

我司痛点:公司的老旧项目较多有几十来个,看公司资料库,以往是通过手动配置 vscode 的 settings.json 和.prettierrc 来保证大伙的代码风格统一的 ———— 这样做的问题很大,首先不是强制性规定,很难让所有人都遵守,新入职的兄弟如果没仔细看公司文件大概率也是不知道的,直接导致维护项目时很容易不小心格式化到老旧代码,然后又会导致 codereview 时,大片由于格式化代码产生的红红绿绿,就很难受。

基于此,一开始我只是统一 .prettierrc 和 .vscode/settings.json 写入项目内部,并且设置成保存自动格式化来进行推广,发现根本推不动,因为嫌麻烦,还要配置 eslint 文件,安装解决 eslint 和 prettier 冲突的插件等。好好好,复制粘贴你嫌麻烦,那么不如我就直接写一个 cli,让自动化的去作上述所有操作,最后一次性格式化所有代码。

由此,github unify-code-cli产生了,目前还在初始阶段,只能完成上述的工作,交互细节还在完善,欢迎提 pr 和 star 呀~