天天看點

Node.js 指令行程式開發教程

一種程式設計語言是否易用,很大程度上,取決于開發指令行程式的能力。

node.js 作為目前最熱門的開發工具之一,怎樣使用它開發指令行程式,是 web 開發者應該掌握的技能。

Node.js 指令行程式開發教程

<a></a>

我們從最簡單的講起。

首先,使用 javascript 語言,寫一個可執行腳本 hello 。

然後,修改 hello 的權限。

現在,hello 就可以執行了。

如果想把 hello 前面的路徑去除,可以将 hello 的路徑加入環境變量 path。但是,另一種更好的做法,是在目前目錄下建立 package.json ,寫入下面的内容。

然後執行 npm link 指令。

現在再執行 hello ,就不用輸入路徑了。

指令行參數可以用系統變量 process.argv 擷取。

執行時,直接在腳本檔案後面,加上參數即可。

腳本可以通過 child_process 子產品建立子程序,進而執行 unix 系統指令。

用法如下。

然後,改寫腳本。

上面代碼是 shelljs 的本地模式,即通過 exec 方法執行 shell 指令。此外還有全局模式,允許直接在腳本中寫 shell 指令。

shelljs 隻解決了如何調用 shell 指令,而 yargs 子產品能夠解決如何處理指令行參數。它也需要安裝。

yargs 子產品提供 argv 對象,用來讀取指令行參數。請看改寫後的 hello 。

使用時,下面兩種用法都可以。

如果将 argv.name 改成 argv.n,就可以使用一個字母的短參數形式了。

可以使用 alias 方法,指定 name 是 n 的别名。

這樣一來,短參數和長參數就都可以使用了。

argv 對象有一個下劃線(_)屬性,可以擷取非連詞線開頭的參數。

yargs 子產品還提供3個方法,用來配置指令行參數。

demand:是否必選

default:預設值

describe:提示

上面代碼指定 n 參數不可省略,預設值為 tom,并給出一行提示。

options 方法允許将所有這些配置寫進一個對象。

有時,某些參數不需要值,隻起到一個開關作用,這時可以用 boolean 方法指定這些參數傳回布爾值。

上面代碼中,參數 n 總是傳回一個布爾值,用法如下。

boolean 方法也可以作為屬性,寫入 option 對象。

yargs 子產品提供以下方法,生成幫助資訊。

usage:用法格式

example:提供例子

help:顯示幫助資訊

epilog:出現在幫助資訊的結尾

執行結果如下。

yargs 子產品還允許通過 command 方法,設定 git 風格的子指令。

可以将這個功能與 shellojs 子產品結合起來。

每個子指令往往有自己的參數,這時就需要在回調函數中單獨指定。回調函數中,要先用 reset 方法重置 yargs 對象。

根據 unix 傳統,程式執行成功傳回 0,否則傳回 1 。

unix 允許程式之間使用管道重定向資料。

腳本可以通過監聽标準輸入的data 事件,擷取重定向的資料。

下面是用法:

作業系統可以向執行中的程序發送信号,process 對象能夠監聽信号事件。

發送信号的方法如下。

來源:51cto

繼續閱讀