成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Node.js命令行工具開發(fā)

tunny / 2278人閱讀

摘要:命令行工具開發(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 world
commander模塊

為了更高效的編寫命令行工具,我們使用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 -hhelper -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 的命令,當用戶輸入helper hello ipluser時,終端顯示hello ipluser。修改helper文件內(nèi)容:

#!/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 hellohelper hello -h命令,終端將會顯示幫助信息:

$ helper hello

 Usage: helper-hello 

 Options:

  -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文檔。

關(guān)鍵知識點

npm link

ruanyifeng

commander.js

TJ

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/87841.html

相關(guān)文章

  • 從零開始打造個人專屬命令工具集——yargs完全指南

    摘要:自阮大神的文章發(fā)布以來,有了一些改動,添加有很多有用的功能,特別是這個功能,對打造命令行工具集合非常有用,所以寫一個新版本的教程還是有必要的。 前言 使用命令行程序?qū)Τ绦騿T來說很常見,就算是前端工程師或者開發(fā)gui的,也需要使用命令行來編譯程序或者打包程序 熟練使用命令行工具能極大的提高開發(fā)效率,linux自帶的命令行工具都非常的有用,但是這些工具都是按照通用需求開發(fā)出來的,如果有一些...

    wanghui 評論0 收藏0
  • node命令工具開發(fā)【翻譯小工具

    摘要:命令行工具開發(fā)有許多命令行工具。現(xiàn)在我們就用來開發(fā)一個實用的命令行小工具一初探一個最簡單的命令行工具首先我們新建一目錄,然后執(zhí)行生成文件新建一目錄并在目錄下創(chuàng)建一個執(zhí)行我們可以看到終端輸出。。 node命令行工具開發(fā) NodeJs有許多命令行工具。它們?nèi)职惭b,并提供一個命令供我們使用,完成相應(yīng)的功能。 現(xiàn)在我們就用node來開發(fā)一個實用的命令行小工具 一.初探 一個最簡單的命令行工具...

    Yang_River 評論0 收藏0
  • 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ā) 總覽:命令行看段...

    kelvinlee 評論0 收藏0
  • 開發(fā)一個Node命令小玩具全過程--高顏統(tǒng)計工具

    摘要:相信熟悉系統(tǒng)的,對于一些等命令用起來應(yīng)該愛不釋手,這也是我想要開發(fā)一個便捷命令行的初衷,其次就是記錄一個完整開源小玩具的全過程。 背景 命令行工具對于我們來說非常的熟悉,一些命令行的操作也極大的簡化了我們的日常工作。本文就基于我寫的一個Node命令行代碼計數(shù)器來進行展開。 相信熟悉linux系統(tǒng)的,對于一些ps,grep,cp,mv…等命令用起來應(yīng)該愛不釋手,這也是我想要開發(fā)一個便捷命...

    ytwman 評論0 收藏0
  • Node.js 寫了個將 markdown 筆記發(fā)布到 Evernote 的命令工具

    摘要:我一直是印象筆記的用戶,但是苦于它一直不支持語法,于是就開發(fā)了一個簡單的命令行工具,可以將筆記發(fā)布到印象筆記。比如我為了實現(xiàn)印象筆記的列表,就寫了一個小插件。 我一直是印象筆記的用戶,但是苦于它一直不支持 markdown 語法,于是就開發(fā)了一個簡單的命令行工具 evermark,可以將 markdown 筆記發(fā)布到印象筆記。 GitHub 地址:https://github.com/...

    vibiu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<