中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

怎么從0開始用node寫一個命令行程序

這篇文章將為大家詳細講解有關(guān)怎么從0開始用node寫一個命令行程序,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機網(wǎng)站制作設(shè)計等網(wǎng)站方面業(yè)務(wù)。

前言

什么是命令行程序呢?像我們常見的webpack,vue-cli都屬于命令行程序。

從0開始用node寫一個自己的命令行程序,并發(fā)布到npm。

準備工作

我打算寫一個統(tǒng)計個人代碼提交量的命令行工具,起名 git-tool 。

npm地址見git-tool ,GitHub地址見 git-tool 。

1、在GitHub上新建一個項目git-tool。

2、克隆到本地進行開發(fā)。

3、執(zhí)行npm init創(chuàng)建package.json文件。

// 其他代碼
"bin": {
  "git-tool": "./index.js"
},
// 其他代碼

bin字段里面的key值可以隨便取名,value值為對應(yīng)的執(zhí)行文件。

4、新建index文件。

#!/usr/bin/env node
console.log('git-tool')

#!/usr/bin/env node 的意思是讓系統(tǒng)自己去找node的執(zhí)行程序,該行必不可少。

5、執(zhí)行 npm link

如果執(zhí)行該命令報錯,參考 https://docs.npmjs.com/getting-started/fixing-npm-permissio

6、運行 git-tool

我們發(fā)現(xiàn)控制臺會打印出git-tool。

怎么從0開始用node寫一個命令行程序

圖一

實現(xiàn)

經(jīng)過以上步驟我們已經(jīng)基本搭好環(huán)境了,下面就可以開始寫自己的邏輯了。

參數(shù)讀取

process.argv 用來獲取命令行參數(shù)。

修改index.js文件

#!/usr/bin/env node
console.log('git-tool')
console.log(process.argv)

然后執(zhí)行 git-tool ss cd ,結(jié)果如下圖所示:

怎么從0開始用node寫一個命令行程序

圖二

process.argv 返回一個數(shù)組,數(shù)組前兩位是固定的,分別是node程序的路徑和腳本存放的位置,從第三位開始才是額外輸入的內(nèi)容。

npm社區(qū)有一些優(yōu)秀的命令行參數(shù)解析包,如 yargs , commander.js

我使用的是 commander.js

插件

commander.js 的基本使用很簡單,

#!/usr/bin/env node
const program = require('commander');
program.version('1.0.0')
program
 .command('codeLineNum')
 .description('統(tǒng)計git提交代碼量')
 .option("--author [author]", "統(tǒng)計指定作者git提交代碼量")
 .action(function (options) {
  console.log(options.author)
 })
program.parse(process.argv);

此時執(zhí)行 git-tool -h ,效果如下:

怎么從0開始用node寫一個命令行程序

圖三

它會幫我們自動做一些事情,很方便。

思路

我們要實現(xiàn)統(tǒng)計代碼提交量的目的,就必須借助git命令。

git log --author="username" --pretty=tformat: --numstat

該命令輸出如下:

怎么從0開始用node寫一個命令行程序

圖四

第一列為增加的代碼行數(shù),第二列為刪除的代碼行數(shù),第三列為改動的文件。

一些管道命令符可以處理這些數(shù)據(jù),但是Windows系統(tǒng)不支持。

所以我的思路是把數(shù)據(jù)寫到文件中,然后在逐行讀取進行處理。

代碼

具體實現(xiàn)細節(jié)就不展開了,有興趣的可以去GitHub看源碼。

最終實現(xiàn)效果如下

怎么從0開始用node寫一個命令行程序

圖五

怎么從0開始用node寫一個命令行程序

圖六

發(fā)布npm包

1、創(chuàng)建npm賬戶(如果已有,略過該步驟)

注冊地址: https://www.npmjs.com/signup

2、登陸npm login

3、發(fā)布 npm publish

每次發(fā)布時都需要更改package.json 中的version;

發(fā)布需將npm registry地址設(shè)為 http://registry.npmjs.org

npm config set registry http://registry.npmjs.org

關(guān)于“怎么從0開始用node寫一個命令行程序”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

分享題目:怎么從0開始用node寫一個命令行程序
網(wǎng)址分享:http://www.rwnh.cn/article6/jjspig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、標簽優(yōu)化、品牌網(wǎng)站設(shè)計、網(wǎng)站導(dǎo)航、做網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
阿城市| 饶阳县| 苗栗市| 新昌县| 乌恰县| 柘荣县| 胶州市| 调兵山市| 渝北区| 泾阳县| 白沙| 贵州省| 石柱| 商河县| 达尔| 师宗县| 桂东县| 吉木乃县| 从江县| 上犹县| 中西区| 萝北县| 邢台县| 衡东县| 德阳市| 丰顺县| 子洲县| 榕江县| 涪陵区| 威远县| 玛曲县| 新乡县| 武陟县| 开鲁县| 正蓝旗| 会同县| 扎鲁特旗| 福海县| 安龙县| 巫溪县| 樟树市|