一、CLI的含义
cli全称是command-line interface 命令行接口,通过命令行执行的应用被叫做CLI,这些应用也就是命令行工具,平时会使用到很多命令行工具,例如:npm、webpack...
二、命令行的基本构成
npm install webpack -g
应用名称 命令 包名 标记(flag)
命令行由这四个基本结构组成
三、自定义CLI
1、CLi名称
想一个属于你自己的CLI名称,创建一个文件夹、、 这边就叫orange
2、初始化项目
这边使用的是vscode,使用其他工具都无所谓,先打开终端,输入指令
npm init -y
会得到一个package.json 文件
3.CLI入口
创建一个js文件,存放你要这个工具实现的功能作为入口,这边简单一点就叫cli.js 输出个cli工具吧
#! /usr/bin/env node //是必须的 作用是使用node运行你的入口文件,也就是这个工具
console.log("cli工具");
4. 配置文件
修改package.json文件,加入bin字段,注意自己存放的路径
{
"name": "orange",
"version": "1.0.0",
"description": "",
"main": "./cli.js",
"bin": "./cli.js", // 入口文件的路径
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
5. 链接到全局
npm link
到这里一个简易的CLI工具就完成了
四、测试
虽然说CLI工具是写完了,但不使用一下怎么知道到底成功没有呢,所以测试是必要的,
整理一下我们的工具实现的功能是什么,打印CLI工具, 并且已经链接到全局,接下来:
1.新建一个文件夹 -- 名字任意(test)
2.初始化 -- npm init -y !!! 注意终端的路径要修改到当前文件夹下面
3.链接自己写的CLI工具 -- npm link 工具名(orange)
这样就是链接成功了,并且会生成一个node_modules文件夹
4.执行
执行orange(工具名)
这样我们刚刚写的CLI工具就被调用了,说明我们的工具已经完成了
仅限本地调试时使用, 正常可以使用npx orange(工具名)
五、备注
1.工具的package.json文件中bin字段的路径可以写成{ }的形式,可以改变工具的名称
"bin": "./cli.js" //默认文件名 orange
"bin": {
"orange-cli": "./cli.js" //命令改为 orange-cli
},