ime-cli node命令行工具程序开发
node开发命令行程序越来越常见,基于node底层而开发前端工具越来越多。基本上包括前端开发方方面面。现在简单看一下一个入门级的node命令工具开发的全过程。
ime-cli
程序
预览 $ npm install -g ime-cli
$ ime -h
$ ime dict -q "hello" // 翻译 hello
$ ime weather -c "上海" // 查询上海天气 hello
步骤
1.安装node、npm程序
2.写一个js可执行脚本 ./bin/ime
,(文件在首行添加)
#!/usr/bin/env node
3.修改 ime 文件的执行权限
chmod 755 ime // 需要下载 git,使用 git-bash 命令行执行
4.编辑package.json的文件, bin 字段,并添加相关依赖包
"name": "ime-cli",
"version": "0.0.1",
"bin": {
"ime": "./bin/ime"
},
"dependencies": {
"axios": "^0.15.2",
"colors": "^1.1.2",
"commander": "^2.9.0",
"inquirer": "^1.2.2",
"lodash": "^4.16.5",
"shelljs": "^0.7.5",
"cli-table":"^0.3.1"
}
5.编写主要逻辑放于 ./cmds
目录下,并测试自己的程序
$ ./bin/ime [command] [options]
excample :
$ ./bin/ime -h
$ ./bin/ime init
$ ./bin/ime dict -l
$ ./bin/ime dict -q "hello"
6.执行 npm link
将命令pkg中bin字段设置命令链接到全局,如果 npm link
报错,可以执行 npm install -g .
(这个步骤不是必须的,可以跳过,直接进入第7步 )
/**
* 本地可以执行以下命令,但是别人不能npm install -g ime-cli 下载使用
*/
$ ime -h
$ ime init
$ ime dict -l
$ ime dict -s "hello"
7.将本地命令行发布到npm中,其他小伙伴就可以在任何地方下载使用
npm config set registry https://registry.npmjs.org
将当前的npm镜像,切换为npmjs官方镜像npm adduser
如果之前没有npmjs账号就新建一个账号(注意!!!这里需要用一定记住,user账号和密码,方便下一次发布新版本使用,发布新版本必须相同账号发布。如果记不住,将不能用这个npm包名字再次发布,只能换一个npm名字发布。切记)npm login
有账号直接登录npm bulish
一定要确保发布的包的名字唯一。不唯一的话需要修改一个唯一的名字。注意每一次发布的时候,需要修改一下version版本号, 这样已经下载过改cli的小伙伴,可以直接npm update就可以检测最新的代码改动。
依赖包
- commander node命令行包,是tj大神作品。用nodejs包装了基于bash风格的命令行程序,所需要的格式,只需要几个超级简单的api就可以获得用户指令,并响应相应操作。
- inquirer node命令行与用户交互的包,提供基于一个cli的可视化交互界面,包含input,checkbox,editor,confirm等等模式,可以验证用户输入,提供友好的cli界面。
- shelljs 用nodejs封装的bash的基本操作,包含cd、rm、mv、cp、touch、exec等等,良好的跨平台性。能够非常方便的操作计算里的文件和执行安装服务。
- lodash js基本数据操作的工具包,不包含dom操作
- axios 将http请求包装成Promise对象,有点类似于jq的$.ajax()。
- colors 修改node命令行界面输出 文本颜色。
- cli-table 命令行输出表格
示例
example 目录下有很多演示文件,可以分别执行看一下效果,并拿到自己项目中使用
- example/commander/example
- example/inquirer/example
commander例子 查看
$ cd example/commander/example
$ ./coercion -h
...
inquirer例子 查看
$ cd example/inquirer
$ npm install
$ cd ./example
$ node bottom-bar.js
...