NodeJs 命令行程序

2021-09-15 09:36 更新

使用NodeJS編寫(xiě)的東西,要么是一個(gè)包,要么是一個(gè)命令行程序,而前者最終也會(huì)用于開(kāi)發(fā)后者。因此我們?cè)诓渴鸫a時(shí)需要一些技巧,讓用戶(hù)覺(jué)得自己是在使用一個(gè)命令行程序。

例如我們用NodeJS寫(xiě)了個(gè)程序,可以把命令行參數(shù)原樣打印出來(lái)。該程序很簡(jiǎn)單,在主模塊內(nèi)實(shí)現(xiàn)了所有功能。并且寫(xiě)好后,我們把該程序部署在/home/user/bin/node-echo.js這個(gè)位置。為了在任何目錄下都能運(yùn)行該程序,我們需要使用以下終端命令。

$ node /home/user/bin/node-echo.js Hello World
Hello World

這種使用方式看起來(lái)不怎么像是一個(gè)命令行程序,下邊的才是我們期望的方式。

$ node-echo Hello World

Linux

在Linux系統(tǒng)下,我們可以把JS文件當(dāng)作shell腳本來(lái)運(yùn)行,從而達(dá)到上述目的,具體步驟如下:

  1. 在shell腳本中,可以通過(guò)#!注釋來(lái)指定當(dāng)前腳本使用的解析器。所以我們首先在node-echo.js文件頂部增加以下一行注釋?zhuān)砻鳟?dāng)前腳本使用NodeJS解析。

     #! /usr/bin/env node

    NodeJS會(huì)忽略掉位于JS模塊首行的#!注釋?zhuān)槐負(fù)?dān)心這行注釋是非法語(yǔ)句。

  2. 然后,我們使用以下命令賦予node-echo.js文件執(zhí)行權(quán)限。

     $ chmod +x /home/user/bin/node-echo.js
  3. 最后,我們?cè)赑ATH環(huán)境變量中指定的某個(gè)目錄下,例如在/usr/local/bin下邊創(chuàng)建一個(gè)軟鏈文件,文件名與我們希望使用的終端命令同名,命令如下:

     $ sudo ln -s /home/user/bin/node-echo.js /usr/local/bin/node-echo

這樣處理后,我們就可以在任何目錄下使用node-echo命令了。

Windows

在Windows系統(tǒng)下的做法完全不同,我們得靠.cmd文件來(lái)解決問(wèn)題。假設(shè)node-echo.js存放在C:\Users\user\bin目錄,并且該目錄已經(jīng)添加到PATH環(huán)境變量里了。接下來(lái)需要在該目錄下新建一個(gè)名為node-echo.cmd的文件,文件內(nèi)容如下:

@node "C:\User\user\bin\node-echo.js" %*

這樣處理后,我們就可以在任何目錄下使用node-echo命令了。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)