零基础构建一个属于自己的 CLI 工具

1,298 阅读2分钟

一、CLI的含义

cli全称是command-line interface 命令行接口,通过命令行执行的应用被叫做CLI,这些应用也就是命令行工具,平时会使用到很多命令行工具,例如:npm、webpack...

二、命令行的基本构成

      npm        install       webpack         -g
    应用名称       命令           包名        标记(flag)

命令行由这四个基本结构组成

三、自定义CLI

1、CLi名称

想一个属于你自己的CLI名称,创建一个文件夹、、 这边就叫orange

image.png

2、初始化项目

这边使用的是vscode,使用其他工具都无所谓,先打开终端,输入指令

    npm init -y

会得到一个package.json 文件
image.png

3.CLI入口

创建一个js文件,存放你要这个工具实现的功能作为入口,这边简单一点就叫cli.js 输出个cli工具吧 image.png

#! /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) image.png 这样就是链接成功了,并且会生成一个node_modules文件夹
image.png

4.执行
执行orange(工具名) 这样我们刚刚写的CLI工具就被调用了,说明我们的工具已经完成了
image.png
仅限本地调试时使用, 正常可以使用npx orange(工具名)

五、备注

1.工具的package.json文件中bin字段的路径可以写成{ }的形式,可以改变工具的名称

"bin":  "./cli.js"      //默认文件名  orange

"bin": {
    "orange-cli": "./cli.js"  //命令改为 orange-cli
  },

本章完