這篇文章主要介紹了使用nodejs開發cli項目實例,本文講解使用generator-cli-starter實現cli項目的開發,需要的朋友可以參考下
1.分分鐘使用默認選項安裝完nodejs
2.分分鐘使用sudo npm install -g yo安裝完yeoman
3.通過sudo npm install -g generator-cli-starter安裝cli開發腳手架
OK, 現在我們可以使用yo cli-starter命令開始我們cli開發之旅了
創建cli項目
代碼如下:
yo cli-starter
按照提示輸入項目名稱、命令名稱,完成cli項目創建。後續的教程中我們將使用hi作為你的命令名稱,如果你使用了其他命令名稱,請注意替換
Let's try first
現在命令行中輸入如下命令(如果你用的不是hi,注意替換)
代碼如下:
hi
效果如下:
試個常見命令?
我們接下來就開發一個類似ls, ls -all的命令,這裡面需要用到一個node模塊commander,先來安裝一下:
進入該項目根目錄執行npm install --save commander,
然後用你喜歡的editor打開bin/hi.js,並用以下內容替換原先的代碼:
代碼如下:
#!/usr/bin/env node
'use strict';
var program = require('commander');
program
.version('0.0.1');//聲明hi的版本號
program
.command('list')//聲明hi下有一個命令叫list
.description('list files in current working directory')//給出list這個命令的描述
.option('-a, --all', 'Whether to display hidden files')//設置list這個命令的參數
.action(function(options) {//list命令的實現體
var fs = require('fs');
//獲取當前運行目錄下的文件信息
fs.readdir(process.cwd(), function(err, files) {
var list = files;
if (!options.all) {//檢查用戶是否給了--all或者-a的參數,如果沒有,則過濾掉那些以.開頭的文件
list = files.filter(function(file) {
return file.indexOf('.') !== 0;
});
}
console.log(list.join(' '));//控制台將所有文件名打印出來
});
});
program.parse(process.argv);//開始解析用戶輸入的命令
OK,現在來試試我們剛寫好的命令吧,
代碼如下:
hi -V
hi list
代碼如下:
hi list -a
如何發布
首先需要在Github上創建一個項目,並把我們剛才寫的代碼同步上去。
然後通過npm publish命令將你的cli發布到npm。
然後其他用戶就可以通過npm install -g [項目名稱]將你的命令安裝到本地使用了