使用nodejs開發(fā)cli項目實例
1.分分鐘使用默認選項安裝完nodejs
2.分分鐘使用sudo npm install -g yo安裝完yeoman
3.通過sudo npm install -g generator-cli-starter安裝cli開發(fā)腳手架
OK, 現(xiàn)在我們可以使用yo cli-starter命令開始我們cli開發(fā)之旅了
創(chuàng)建cli項目
yo cli-starter
按照提示輸入項目名稱、命令名稱,完成cli項目創(chuàng)建。后續(xù)的教程中我們將使用hi作為你的命令名稱,如果你使用了其他命令名稱,請注意替換
Let's try first
現(xiàn)在命令行中輸入如下命令(如果你用的不是hi,注意替換)
hi
效果如下:
試個常見命令?
我們接下來就開發(fā)一個類似ls, ls -all的命令,這里面需要用到一個node模塊commander,先來安裝一下:
進入該項目根目錄執(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的版本號
program
.command('list')//聲明hi下有一個命令叫l(wèi)ist
.description('list files in current working directory')//給出list這個命令的描述
.option('-a, --all', 'Whether to display hidden files')//設(shè)置list這個命令的參數(shù)
.action(function(options) {//list命令的實現(xiàn)體
var fs = require('fs');
//獲取當(dāng)前運行目錄下的文件信息
fs.readdir(process.cwd(), function(err, files) {
var list = files;
if (!options.all) {//檢查用戶是否給了--all或者-a的參數(shù),如果沒有,則過濾掉那些以.開頭的文件
list = files.filter(function(file) {
return file.indexOf('.') !== 0;
});
}
console.log(list.join(' '));//控制臺將所有文件名打印出來
});
});
program.parse(process.argv);//開始解析用戶輸入的命令
OK,現(xiàn)在來試試我們剛寫好的命令吧,
hi -V
hi list
hi list -a
如何發(fā)布
首先需要在Github上創(chuàng)建一個項目,并把我們剛才寫的代碼同步上去。
然后通過npm publish命令將你的cli發(fā)布到npm。
然后其他用戶就可以通過npm install -g [項目名稱]將你的命令安裝到本地使用了
相關(guān)文章
詳解NodeJS框架express的路徑映射(路由)功能及控制
這篇文章主要介紹了詳解NodeJS框架express的路徑映射(路由)功能及控制,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03node.js express安裝及示例網(wǎng)站搭建方法(分享)
下面小編就為大家?guī)硪黄猲ode.js express安裝及示例網(wǎng)站搭建方法(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08nodejs實現(xiàn)百度輿情接口應(yīng)用示例
這篇文章主要介紹了nodejs實現(xiàn)百度輿情接口應(yīng)用,結(jié)合實例形式分析了node.js調(diào)用百度輿情接口的具體使用技巧,需要的朋友可以參考下2020-02-02npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法
這篇文章主要給大家介紹了關(guān)于npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法,文中通過圖文將解決的方法介紹的非常詳細,需要的朋友可以參考下2023-03-03