🔧 手把手教你开发一个自己的cli工具(二)

前言

🔧 手把手教你开发一个自己的cli工具(一)juejin.cn/post/735946...

这里呢,我准备分享一下如何开发自己的cli工具,以及介绍一下cli工具的具体能做哪些事情

生成全局变量

首先在package.json中添加bin

json 复制代码
  "bin": {
    "full-featured-commit": "./bin/index.js"
  },

然后npm link在全局生成软链,这个link软链在window系统可能会有坑,大家自行搜索吧,我这里是macOS,软链npm link应该是不生效的,所以这里可以全局安装路径下的包

sh 复制代码
# 获取到当前项目目录
pwd
# User/xxx/xxx/xxx

#全局安装
npm install -g User/xxx/xxx/xxx

然后在终端运行一下,这样就可以了

编写commander命令

我们先创建一个program,然后编写一下基本的信息,然后运行即可

arduino 复制代码
  program
    .name('🌸 10:30的飞机 🌸')
    .version('🌈 1.4.1', '-v,--version')
    .description('🚀 南宁的朋友')
  program.parse()

然后就是一些基础命令用法这里大家直接去官网看就可以啦www.npmjs.com/package/com...

inquirer

inquirer 是问答交互命令行生成工具,这里大家去官方文档查看即可www.npmjs.com/package/inq...

js 复制代码
import inquirer from 'inquirer'
const prompt = inquirer.createPromptModule()

propt([{
        type: 'confirm',
        name: 'isGit',
        message: 'Are you going to use git in your project?',
        default: true
},
{
        type: 'confirm',
        name: 'isEslintAndPrettier',
        message:'Are you going to use Eslint and Prettier in your project?',
        default: true
}
]).then(res=>{
 console.log(res)
})

chalk

给node.js的命令行添加颜色,使得命令行更加好看,这里照样给大家把地址贴上www.npmjs.com/package/cha...

hirestime

用于计算某个函数从开始到结束所需要的时间www.npmjs.com/package/hir...

figlet

用于在命令行生成艺术字,让我们的终端命令更加好看 www.npmjs.com/package/fig...

发布到npm

首先在npm官网注册一个账号,然后我们就可以发布包了

先用终端打开项目根目录文件,然后查看当前的npm源是否是官网,注意:这里必须是官网,如果不是官方源的话,会出错,所以这里大家都切换到官网源,

arduino 复制代码
npm config get registry

npm  config get registry https://registry.npmjs.org/

然后执行npm login

sh 复制代码
npm login

npm publish

这样之后就能发布在npm上了。完成之后就大功告成了,注意一般最新版本只在官方源能download到,别的源拉取官方源有一定的延时

🔧 手把手教你开发一个自己的cli工具(一)juejin.cn/post/735946...

相关推荐
henry10101040 分钟前
DeepSeek生成的网页小游戏 - 迷你高尔夫
前端·javascript·游戏·html
薛一半1 小时前
React的组件
前端·javascript·react.js
广州华水科技2 小时前
水库的单北斗GNSS变形监测系统是什么?主要有哪些应用?
前端
薛一半2 小时前
React三大属性之props
前端·javascript·react.js
Wect2 小时前
LeetCode 105. 从前序与中序遍历序列构造二叉树:题解与思路解析
前端·算法·typescript
烤麻辣烫3 小时前
正则表达式快速掌握
前端·javascript·学习·正则表达式·html
长城20243 小时前
HTML5中可以省略属性值的11个属性总结
前端·html·html5·属性值·省略属性值
木斯佳3 小时前
前端八股文面经大全:小红书前端一面(2026-2-3)·面经深度解析
前端·状态模式
心之语歌4 小时前
flutter 父子组件互相调用方法,值更新
前端·javascript·flutter
岱宗夫up4 小时前
FastAPI进阶3:云原生架构与DevOps最佳实践
前端·python·云原生·架构·前端框架·fastapi·devops