Nodejs學習記錄 製作命令列工具

2021-09-16 21:43:44 字數 2806 閱讀 4537

我們經常會遇到這樣的需求:想要將node模組轉變成乙個linux命令列工具,包括支援命令列選項/引數。

開始編寫之前需要確認的一件事情是你已經安裝了node.js。你可以在命令列中執行 which node 來確認是否已經安裝,或者執行 node -v 檢視 node 的版本 。如果你已經安裝了node,你可以看到類似於下面的輸出結果,一般情況安裝了node.js 順帶npm工具自動安裝了。

$ which node

/d/program files/nodejs/node

$ node -v

v7.9.0

** :

首先任意建立乙個資料夾,初始化package.json檔案,在該資料夾下建立bin目錄:

$ mkdir command-line-tool #建立乙個資料夾

$ cd command-line-tool && mkdir bin

$ npm init #初始化 `package.json` 檔案

cd到 bin 目錄下,新建乙個 commander.js 檔案(名字自取),編寫如下**,在js檔案頂部加上 #!/usr/bin/env node 這段**:

上面的#!/usr/bin/env node(或者/d/program files/nodejs/node

),表示用後面的路徑所示的程式來執行當前資料夾。還需要乙個package.json檔案

,

"scripts": ,

"author": "alexz33",

"license": "mit"

}

執行node bin/wcommander.js會顯示當前資料夾下的所以檔案和資料夾名

package.json檔案中 bin 裡面的內容表示這個欄位將commander命令對映到了你的bin/commander.js指令碼

npm-link

package.json#bin

版本號管理:此工具採用 npm版本號採用的 semver 規則

確保你在package.json檔案中新增了 bin 節點。然後開啟命令了工具進入command-line-tool目錄

"bin":
開啟命令列,輸入npm link會自動新增全域性的symbolic link,然後就可以使用自己的命令了。

npm link
這裡我們通過npm link在本地安裝了這個包用於測試,然後就可以通過

$ commander

//bin

$ commander -v

//version is 1.0.0

$ commander -h

//useage:

// -v --version [show version]

更多npm link的資訊請檢視 npm官方文件

如上面的小例子,第一行我們依然

#!/usr/bin/env node
然後要提供命令列引數/選項,包括重要的--help,需要使用commander模組:

const phantom = require('phantom')

const program = require('commander');

program

.version('0.0.1')

.option('-s, --source[website]', 'source website')

.option('-f, --file[filename]', 'filename')

.parse(process.ar**)

const run = async() => );

const status = await page.open(program.source)

await instance.exit();

}run()

上面這段

const run = async() => 

run()

可以直接寫成自執行匿名函式

yargs 和 minimist 都是用來解析命令列引數的,但是有一點需要注意的是 yargs 內部的解析引擎就是 minimist。minimist 就是乙個輕量級的命令列引數解析引擎。

它們兩者共同點肯定有,不同點就是 yargs 是對 minimist 進行了更進一步的封裝。

使用node.js建立命令列工具

building a ****** command line tool with npm

nodejs 製作命令列工具

node.js 命令列程式開發教程 by 阮一峰

前端掃盲-之打造乙個node命令列工具

Linux命令列學習記錄

su命令列 全稱swith user 進入root命令列su root,之後需要輸入密碼 建議密碼盡量搞簡單點 進入普通使用者su 使用者名稱 ls命令列 全稱list。命令列解析 ls 選項 目錄名 以下命令列相同 列出當前目錄裡的所有子目錄和檔案ls,但隱藏檔案不會顯示 如果需要了解所有檔案的詳...

GIT命令列記錄

新增修改檔案 git add 新增檔案路徑 新增所有變更檔案 撤銷add git reset head 上一次add全部撤銷 撤銷add git reset head 檔名 撤銷指定檔案 新增提交說明 git commit m 這裡寫本次提交的說明檔案 commit後項撤銷 git reset so...

NodeJS 研究筆記 命令列處理

在啟動node程式時,我們希望能在命令列啟動時,傳入引數,node程式根據輸入的命令引數,執行相應的處理流程。在node程式中,使用process.argv 獲取命令列輸入引數。process.argv 是乙個陣列,用於存放從命令列傳入的引數。其類似c語言main 函式中的char argv.假定我...