赞
踩
在日常开发中我们每做一个功能需求
就会创建一个git功能分支
,时间久了本地和线上的分支就会被累积很多,那么此时有一个批量删除git分支的工具就显得尤为重要。GBKILL
正是为了解决这一需求也生的工具,让你更加高效的删除git分支。 这篇文章主要讲述的是使用ink+react
构建批量删除git分支
的Node Cli
工具。
在这里不再阐述脚手架的功能需求,可以通过需求规划进行查看
在进行进行功能开发前,我们需要先了解一下会涉及到那些依赖包
git
命令为了能更加清晰的了解到项目中每个文件所负责的功能以及整个项目的结构,我使用了drawio
绘制了从初始化项目
->命令注册
->界面绘制
的视图
因为这里我是基于react+ink
来开发,因此可以通过其提供的create-ink-app
脚手架来初始化项目模板并且选择指定typescrt类型。当然你也可以不选择他的模板自己主动创建一个,gbkill
也是后面才加入ink
因此也没有使用create-ink-app
创建
npx create-ink-app --typescript gbkill
如下几个参数特别在这里特别标注一下,其余的可以直接看源码配置即可
...
"bin": {
"gbkill": "./lib/index.js" // 指定脚手架命令 -> 执行命令映射到./lib/index.js文件
},
"scripts": {
"build": "yarn run clean:build && npx tsc", // 打包命令
"dev": "yarn run clean:build && npx tsc --watch", // 开发命令,启动时清除lib文件编译ts文件为js文件
"clean:build": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/clean-build.ts", // 通过脚本文件删除lib目录
},
"files": [
"lib", // 指定npm publish发布的文件,我们只需要把编译后的文件发布到npm社区中
],
#! /usr/bin/env node
是什么意思呢? 就是从环境变量获取到node、并且使用Node运行该文件。等价于在项目根目录执行node index.js
命令。
当然我们也可以写成#! /usr/bin/node
。这种写法是直接执行/usr/bin
目录下的node,这种写法不推荐因为这样子就把node固定位置了。但每个人的node安装目录会有所不同,所以推荐上面的#! /usr/bin/env node
写法
#!/usr/bin/env node
import main from './main.js';
main();
定义好入口时,执行yarn run dev
启动项目编译将生成lib目录。此时有两种方式调试,
第一种: 使用terminal进入lib目录执行./index.js文件
即可。
第二种: 在当前项目中使用npm link
将该项目link到全局中,随后在terminal中执行gbkill
即可
采用微任务队列思维进行按顺序初始化
init() {
let chain = Promise.resolve();
chain = chain.then(() => {
this.actions = new Actions();
});
chain = chain.then(async () => await this.prepare()); // 前期准备、检查版本、降级ROOT用户
chain = chain.then(() => this.registerCommand()); // 注册Command命令
chain = chain.then(() => this.exitListener()); // 注册退出监听
chain = chain.then(() => this.catchGlobalError()); // 捕获全局未知命令
chain.catch(error => {
console.log(colors.red(`声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/513038
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。