CLI 即 command-line interface 的简写,中文称命令行界面,是指可在用户提示符下键入可执行指令的界面,通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。因为最近工作需要,使用 NodeJS 写了一次 CLI。
commander
这是一个 npmjs.org 上的 module,通过它可以更简便的写 CLI,具体可以看这里。
直接写
以 hello world
为事例
创建并初始化
mkdir clt-demo
cd clt-demo
npm init
对 package.json
进行修改
先看 package.json
的代码
{
"name": "clt-demo",
"version": "0.0.1",
"description": "a demo for writing CLT with NodeJS",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"nodejs",
"CLT"
],
"license": "MIT",
"preferGlobal": true,
"bin": {
"commandname": "app.js"
}
}
对 package.json
做了几点的操作
去掉入口 main
属性,因为是 clt,应该是从命令来进入。
增加 preferGlobal
,其对应的值为 true
,目的是提醒用户在安装时是否使用了 --global
参数。
增加 bin
属性,其值是一个对象,对象中 key
为执行的命令名,value
为入口执行文件。
package.json
的内容基本结束。
编辑 app.js
文件
这里是要写一个 hello world
#! /usr/bin/env node
console.log('hello world');
第一行 #! /usr/bin/env node
,叫 Shebang
,关于它的解释,可以翻阅 wikipedia。
第二行 就是打印出 hello world
。
npm link
该命令用来将上面写好的脚本安装到系统中
到这一步基本完成了一个 hello world
的 clt
,执行上面 package.json
中 bin
中 key
的命令即可得到 hello world
。
发布 CLT
可以看之前的写的「在 NPMJS 上发布并维护包」。
源码
学习资料
> 可在 Twitter/X 上评论该篇文章或在下面留言(需要有 GitHub 账号)