用 NodeJS 写 CLI
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 上发布并维护包」。
-
源码
-
学习资料