當前位置:
首頁 > 知識 > 通過npm寫一個cli命令行工具

通過npm寫一個cli命令行工具

首先註冊npm賬戶,填寫一些你的信息,然後就可以開始寫邏輯代碼,這些就不做詳細介紹,直接進入正題。

編寫命令入口

首先看一下項目結構

.
├── bin //命令配置├── README.md //說明文檔├── index.js //主入口├── src //功能文件├── package.json //包信息└── test //測試用例

實例命令代碼都是寫在bin目錄下,我們現在配置文件package文件中啟用命令,添加一個配置項bin

"bin": {
"xu": "./bin/xu.js"
},

然後安裝一個依賴,TJ大神寫的commander插件,

npm i commander --save

有了這個工具我們可以很方便的編寫命令代碼

xu.js

#!/usr/bin/env nodeprocess.title = "xu";require("commander")
.version(require("../package").version)
.usage("<command> [options]")
.command("generate", "generate file from a template (short-cut alias: "g")")
.parse(process.argv)require("./xu-generate"); >>引入

這個文件可以看作是入口文件,第一行代碼是必須添加的,腳本用env啟動的原因,是因為腳本解釋器在linux中可能被安裝於不同的目錄,env可以在系統的PATH目錄中查找。同時,env還規定一些系統環境變數。 這種寫法主要是為了讓你的程序在不同的系統上都能適用。

在這一步,你可以簡單測試你自己的npm插件

$ node ./bin/xu.js>>> 輸出一些插件usage。help信息

xu-generate.js

通過npm寫一個cli命令行工具

這就是功能命令,定義了一個generate命令,.alias("g")是該命令的縮寫,然後.action(function(type, name){

xu.run(type, name);

});返回一個函數,這個函數就是我們定義這個命令需要做什麼事。

編寫功能函數

./src/generate.js

這個文件就定義了當我們輸入

$ xu g

所做的操作了。

通過npm寫一個cli命令行工具

通過npm寫一個cli命令行工具

通過npm寫一個cli命令行工具

這裡有2個新的依賴,分別是命令輸出顏色和一個文件操作的插件,通過npm安裝。

$ npm i fs-extra --save
$ npm i chalk --save

這個js文件導出了一個run函數給 xu-generate.js調用,我們通過參數拿到了用戶輸入的type,name,然後就可以根據type通過node fs模塊(這裡用了一個依賴,不過原理還是fs)操作把template文件複製了一份到你的項目中。


到這,我們就已經完成了一個命令的開發,這個命令可以快速生成項目的模版文件。

本地測試

npm包開發不像web開發,可以直接在瀏覽器看,實例目錄下建立一個test文件,再 node test 就可以測試我們的邏輯。如果有一些功能需要在發布後才能測,npm 有個 link命令 可以連接你本地的模塊,當然你也可以發布後 自己安裝插件測試,就跟平時引入一個插件一樣。

發布npm包

首先在項目根目錄執行npm登陸

$ npm login
$ npm publish

如果這裡有個報錯,可能是你使用了cnpm地址,需要把npm倉庫設置回來

$ npm config set registry https://registry.npmjs.org/

然後,更新更新npm包,版本號需要大於上一次



找工作難?那是你沒選對行業!

2017年【中公教育】特別推出2017年就業促進計劃,500萬就業基金助你成為IT達人

詳情請戳:http//www.ujiuye.com/zt/jycj/?wt.bd=bgz

什麼?海量IT學習資料白給你都不要?別想了,加群搶:584539956

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

三分鐘淺談TT貓的前端優化
乾貨|FTP基本操作類大全
技巧|加快Bitmap的訪問速度
個性測試|哪個小姑娘心情最不開心?看看你的性格特質!超准!
電商直播課|無人問津到門庭若市,增加淘寶訪客數只用一招!

TAG:IT優就業 |