使用nodejs開(kāi)發(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開(kāi)發(fā)腳手架
OK, 現(xiàn)在我們可以使用yo cli-starter命令開(kāi)始我們cli開(kāi)發(fā)之旅了
創(chuàng)建cli項(xiàng)目
yo cli-starter
按照提示輸入項(xiàng)目名稱(chēng)、命令名稱(chēng),完成cli項(xiàng)目創(chuàng)建。后續(xù)的教程中我們將使用hi作為你的命令名稱(chēng),如果你使用了其他命令名稱(chēng),請(qǐng)注意替換
Let's try first
現(xiàn)在命令行中輸入如下命令(如果你用的不是hi,注意替換)
hi
效果如下:
試個(gè)常見(jiàn)命令?
我們接下來(lái)就開(kāi)發(fā)一個(gè)類(lèi)似ls, ls -all的命令,這里面需要用到一個(gè)node模塊commander,先來(lái)安裝一下:
進(jìn)入該項(xiàng)目根目錄執(zhí)行npm install --save commander,
然后用你喜歡的editor打開(kāi)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) {//檢查用戶(hù)是否給了--all或者-a的參數(shù),如果沒(méi)有,則過(guò)濾掉那些以.開(kāi)頭的文件
list = files.filter(function(file) {
return file.indexOf('.') !== 0;
});
}
console.log(list.join(' '));//控制臺(tái)將所有文件名打印出來(lái)
});
});
program.parse(process.argv);//開(kāi)始解析用戶(hù)輸入的命令
OK,現(xiàn)在來(lái)試試我們剛寫(xiě)好的命令吧,
hi -V
hi list
hi list -a
如何發(fā)布
首先需要在Github上創(chuàng)建一個(gè)項(xiàng)目,并把我們剛才寫(xiě)的代碼同步上去。
然后通過(guò)npm publish命令將你的cli發(fā)布到npm。
然后其他用戶(hù)就可以通過(guò)npm install -g [項(xiàng)目名稱(chēng)]將你的命令安裝到本地使用了
相關(guān)文章
詳解NodeJS框架express的路徑映射(路由)功能及控制
這篇文章主要介紹了詳解NodeJS框架express的路徑映射(路由)功能及控制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03詳解HTTPS 的原理和 NodeJS 的實(shí)現(xiàn)
這篇文章主要介紹了詳解HTTPS 的原理和 NodeJS 的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07node.js express安裝及示例網(wǎng)站搭建方法(分享)
下面小編就為大家?guī)?lái)一篇node.js express安裝及示例網(wǎng)站搭建方法(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用示例
這篇文章主要介紹了nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用,結(jié)合實(shí)例形式分析了node.js調(diào)用百度輿情接口的具體使用技巧,需要的朋友可以參考下2020-02-02npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法
這篇文章主要給大家介紹了關(guān)于npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法,文中通過(guò)圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03