91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-02-07 11:03:15 來源:億速云 閱讀:170 作者:小新 欄目:web開發

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

前言

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

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

準備工作

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

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

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

2、克隆到本地進行開發。

3、執行npm init創建package.json文件。

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

bin字段里面的key值可以隨便取名,value值為對應的執行文件。

4、新建index文件。

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

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

5、執行 npm link

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

6、運行 git-tool

我們發現控制臺會打印出git-tool。

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

圖一

實現

經過以上步驟我們已經基本搭好環境了,下面就可以開始寫自己的邏輯了。

參數讀取

process.argv 用來獲取命令行參數。

修改index.js文件

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

然后執行 git-tool ss cd ,結果如下圖所示:

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

圖二

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

npm社區有一些優秀的命令行參數解析包,如 yargs , commander.js

我使用的是 commander.js

插件

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

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

此時執行 git-tool -h ,效果如下:

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

圖三

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

思路

我們要實現統計代碼提交量的目的,就必須借助git命令。

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

該命令輸出如下:

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

圖四

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

一些管道命令符可以處理這些數據,但是Windows系統不支持。

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

代碼

具體實現細節就不展開了,有興趣的可以去GitHub看源碼。

最終實現效果如下

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

圖五

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

圖六

發布npm包

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

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

2、登陸npm login

3、發布 npm publish

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

發布需將npm registry地址設為 http://registry.npmjs.org

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭州市| 桃园市| 垣曲县| 于都县| 南充市| 鄂伦春自治旗| 扎赉特旗| 新丰县| 临猗县| 苏尼特右旗| 循化| 堆龙德庆县| 博爱县| 弥勒县| 拜泉县| 曲靖市| 宕昌县| 河东区| 静乐县| 奈曼旗| 泰顺县| 闽清县| 晋宁县| 兰考县| 道孚县| 甘泉县| 游戏| 全州县| 德钦县| 蓝田县| 台中市| 靖边县| 长子县| 吴桥县| 梁平县| 木兰县| 广宗县| 兴宁市| 邢台县| 汪清县| 金川县|