摘要:命令行工具開發(fā)使用開發(fā)命令行工具是開發(fā)者應(yīng)該掌握的一項技能,適當編寫命令行工具以提高開發(fā)效率。創(chuàng)建命令創(chuàng)建一個的命令,當用戶輸入時,終端顯示。修改文件內(nèi)容添加命令在目錄下新建文件執(zhí)行命令解析輸入信息我們希望是由用戶輸入的,終端應(yīng)該顯示為。
Node.js命令行工具開發(fā)
使用Node.js開發(fā)命令行工具是開發(fā)者應(yīng)該掌握的一項技能,適當編寫命令行工具以提高開發(fā)效率。
hello world老規(guī)矩第一個程序為hello world。在工程中新建bin目錄,在該目錄下創(chuàng)建名為helper的文件,具體內(nèi)容如下:
#!/usr/bin/env node console.log("hello world");
修改helper文件的權(quán)限:
$ chmod 755 ./bin/helper
執(zhí)行helper文件,終端將會顯示hello world:
$ ./bin/helper hello world符號鏈接
接下來我們創(chuàng)建一個符號鏈接,在全局的node_modules目錄之中,生成一個符號鏈接,指向模塊的本地目錄,使我們可以直接使用helper命令。
在工程的package.json文件中添加bin字段:
{ "name": "helper", "bin": { "helper": "bin/helper" } }
在當前工程目錄下執(zhí)行npm link命令,為當前模塊創(chuàng)建一個符號鏈接:
$ npm link /node_path/bin/helper -> /node_path/lib/node_modules/myModule/bin/helper /node_path/lib/node_modules/myModule -> /Users/ipluser/myModule
現(xiàn)在我們可以直接使用helper命令:
$ helper hello worldcommander模塊
為了更高效的編寫命令行工具,我們使用TJ大神的commander模塊。
$ npm install --save commander
helper文件內(nèi)容修改為:
#!/usr/bin/env node var program = require("commander"); program .version("1.0.0") .parse(process.argv);
執(zhí)行helper -h和helper -V命令:
$ helper -h Usage: helper [options] Options: -h, --help output usage information -V, --version output the version number $ helper -V 1.0.0
commander模塊提供-h, --help和-V, --version兩個內(nèi)置命令。
創(chuàng)建命令創(chuàng)建一個helper hello
#!/usr/bin/env node var program = require("commander"); program .version("1.0.0") .usage("[options]") .command("hello", "hello the author") // 添加hello命令 .parse(process.argv);
在bin目錄下新建helper-hello文件:
#!/usr/bin/env node console.log("hello author");
執(zhí)行helper hello命令:
$ helper hello ipluser hello author解析輸入信息
我們希望author是由用戶輸入的,終端應(yīng)該顯示為hello ipluser。修改helper-hello文件內(nèi)容,解析用戶輸入信息:
#!/usr/bin/env node var program = require("commander"); program.parse(process.argv); const author = program.args[0]; console.log("hello", author);
再執(zhí)行helper hello ipluser命令:
$ helper hello ipluser hello ipluser
哦耶,終于達到完成了,但作為程序員,這還遠遠不夠。當用戶沒有輸入author時,我們希望終端能提醒用戶輸入信息。
提示信息在helper-hello文件中添加提示信息:
#!/usr/bin/env node var program = require("commander"); program.usage(""); // 用戶輸入`helper hello -h`或`helper hello --helper`時,顯示命令使用例子 program.on("--help", function() { console.log(" Examples:"); console.log(" $ helper hello ipluser"); console.log(); }); program.parse(process.argv); (program.args.length < 1) && program.help(); // 用戶沒有輸入信息時,調(diào)用`help`方法顯示幫助信息 const author = program.args[0]; console.log("hello", author);
執(zhí)行helper hello或helper hello -h命令,終端將會顯示幫助信息:
$ helper hello Usage: helper-helloOptions: -h, --help output usage information Examples: $ helper hello ipluser $ helper hello -h Usage: helper-hello Options: -h, --help output usage information Examples: $ helper hello ipluser
到此我們編寫了一個helper命令行工具,并且具有helper hello
更多的使用方式可以參考TJ - commander.js文檔。
npm link
ruanyifeng
commander.js
TJ
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/87841.html
摘要:自阮大神的文章發(fā)布以來,有了一些改動,添加有很多有用的功能,特別是這個功能,對打造命令行工具集合非常有用,所以寫一個新版本的教程還是有必要的。 前言 使用命令行程序?qū)Τ绦騿T來說很常見,就算是前端工程師或者開發(fā)gui的,也需要使用命令行來編譯程序或者打包程序 熟練使用命令行工具能極大的提高開發(fā)效率,linux自帶的命令行工具都非常的有用,但是這些工具都是按照通用需求開發(fā)出來的,如果有一些...
摘要:命令行工具開發(fā)有許多命令行工具。現(xiàn)在我們就用來開發(fā)一個實用的命令行小工具一初探一個最簡單的命令行工具首先我們新建一目錄,然后執(zhí)行生成文件新建一目錄并在目錄下創(chuàng)建一個執(zhí)行我們可以看到終端輸出。。 node命令行工具開發(fā) NodeJs有許多命令行工具。它們?nèi)职惭b,并提供一個命令供我們使用,完成相應(yīng)的功能。 現(xiàn)在我們就用node來開發(fā)一個實用的命令行小工具 一.初探 一個最簡單的命令行工具...
摘要:我們的小項目就初始化成功了,就可以認真思考代碼了首先分析糗事百科我們打開糗事百科會發(fā)現(xiàn)它的還是很簡單,由于我們只是爬取段子所以如下,就是頁數(shù)。 Node命令行工具開發(fā)【看段子】 你有沒有上班想看笑話卻又怕領(lǐng)導(dǎo)發(fā)現(xiàn)的經(jīng)歷?現(xiàn)在我們就用幾十行代碼寫一個命令行看笑話段子的小程序,從此無需擔心領(lǐng)導(dǎo)的視察。這篇文章和上一篇差不多都是命令行小工具開發(fā),不過本篇更偏向于小爬蟲的開發(fā) 總覽:命令行看段...
摘要:相信熟悉系統(tǒng)的,對于一些等命令用起來應(yīng)該愛不釋手,這也是我想要開發(fā)一個便捷命令行的初衷,其次就是記錄一個完整開源小玩具的全過程。 背景 命令行工具對于我們來說非常的熟悉,一些命令行的操作也極大的簡化了我們的日常工作。本文就基于我寫的一個Node命令行代碼計數(shù)器來進行展開。 相信熟悉linux系統(tǒng)的,對于一些ps,grep,cp,mv…等命令用起來應(yīng)該愛不釋手,這也是我想要開發(fā)一個便捷命...
摘要:我一直是印象筆記的用戶,但是苦于它一直不支持語法,于是就開發(fā)了一個簡單的命令行工具,可以將筆記發(fā)布到印象筆記。比如我為了實現(xiàn)印象筆記的列表,就寫了一個小插件。 我一直是印象筆記的用戶,但是苦于它一直不支持 markdown 語法,于是就開發(fā)了一個簡單的命令行工具 evermark,可以將 markdown 筆記發(fā)布到印象筆記。 GitHub 地址:https://github.com/...
閱讀 1978·2021-11-22 15:33
閱讀 3009·2021-11-18 10:02
閱讀 2622·2021-11-08 13:16
閱讀 1633·2021-10-09 09:57
閱讀 1378·2021-09-30 09:47
閱讀 2013·2019-08-29 13:05
閱讀 3076·2019-08-29 12:46
閱讀 1013·2019-08-29 12:19