使用nodejs開發(fā)cli項(xiàng)目實(shí)例
1.分分鐘使用默認(rèn)選項(xiàng)安裝完nodejs
2.分分鐘使用sudo npm install -g yo安裝完yeoman
3.通過(guò)sudo npm install -g generator-cli-starter安裝cli開發(fā)腳手架
OK, 現(xiàn)在我們可以使用yo cli-starter命令開始我們cli開發(fā)之旅了
創(chuàng)建cli項(xiàng)目
yo cli-starter
按照提示輸入項(xiàng)目名稱、命令名稱,完成cli項(xiàng)目創(chuàng)建。后續(xù)的教程中我們將使用hi作為你的命令名稱,如果你使用了其他命令名稱,請(qǐng)注意替換
Let's try first
現(xiàn)在命令行中輸入如下命令(如果你用的不是hi,注意替換)
hi
效果如下:

試個(gè)常見命令?
我們接下來(lái)就開發(fā)一個(gè)類似ls, ls -all的命令,這里面需要用到一個(gè)node模塊commander,先來(lái)安裝一下:
進(jìn)入該項(xiàng)目根目錄執(zhí)行npm install --save commander,
然后用你喜歡的editor打開bin/hi.js,并用以下內(nèi)容替換原先的代碼:
#!/usr/bin/env node
'use strict';
var program = require('commander');
program
.version('0.0.1');//聲明hi的版本號(hào)
program
.command('list')//聲明hi下有一個(gè)命令叫l(wèi)ist
.description('list files in current working directory')//給出list這個(gè)命令的描述
.option('-a, --all', 'Whether to display hidden files')//設(shè)置list這個(gè)命令的參數(shù)
.action(function(options) {//list命令的實(shí)現(xiàn)體
var fs = require('fs');
//獲取當(dāng)前運(yùn)行目錄下的文件信息
fs.readdir(process.cwd(), function(err, files) {
var list = files;
if (!options.all) {//檢查用戶是否給了--all或者-a的參數(shù),如果沒有,則過(guò)濾掉那些以.開頭的文件
list = files.filter(function(file) {
return file.indexOf('.') !== 0;
});
}
console.log(list.join(' '));//控制臺(tái)將所有文件名打印出來(lái)
});
});
program.parse(process.argv);//開始解析用戶輸入的命令
OK,現(xiàn)在來(lái)試試我們剛寫好的命令吧,
hi -V

hi list

hi list -a

如何發(fā)布
首先需要在Github上創(chuàng)建一個(gè)項(xiàng)目,并把我們剛才寫的代碼同步上去。
然后通過(guò)npm publish命令將你的cli發(fā)布到npm。
然后其他用戶就可以通過(guò)npm install -g [項(xiàng)目名稱]將你的命令安裝到本地使用了
相關(guān)文章
Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程
Grunt是為Node打造的項(xiàng)目構(gòu)建工具,相當(dāng)于C/C++世界中的makefile,可以執(zhí)行像壓縮、編譯、單元測(cè)試、代碼檢查以及打包發(fā)布的任務(wù),下面我們就來(lái)一起看一下Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程:2016-05-05
electron原理,以及electron生成可執(zhí)行文件的方法實(shí)例分析
這篇文章主要介紹了electron原理,以及electron生成可執(zhí)行文件的方法,結(jié)合實(shí)例形式分析了electron原理以及electron生成可執(zhí)行文件的具體操作步驟、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2023-04-04
基于Koa(nodejs框架)對(duì)json文件進(jìn)行增刪改查的示例代碼
這篇文章主要介紹了基于Koa(nodejs框架)對(duì)json文件進(jìn)行增刪改查的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
NodeJS服務(wù)器實(shí)現(xiàn)gzip壓縮的示例代碼
這篇文章主要介紹了NodeJS服務(wù)器實(shí)現(xiàn)gzip壓縮的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

