當你使用npm
將一個套件安裝到node_modules
資料夾中,或者全域安裝時,你該如何在你的Node程式碼中使用它呢?
假設你使用下列命令安裝了一個常用的JavaScript實用程式庫lodash
:
npm install lodash
這會將套件安裝到本地的node_modules
資料夾中。
要使用它,在你的程式碼中只需要用require
將它引入即可:
const _ = require('lodash')
那如果你安裝的套件是可執行的呢?
在這種情況下,它會將可執行檔放在node_modules/.bin/
資料夾中。
一個簡單的示例是cowsay
,你可以在 cowsay 找到它。
cowsay
提供了一個命令列程式,可以讓一頭牛說出你指定的話(還有其他動物的選項 🦊)。
當你使用npm install cowsay
安裝這個套件時,它會將自己和一些相依性安裝到node_modules
資料夾中:
裡面還有一個隱藏的 .bin
資料夾,其中包含指向cowsay
可執行檔的符號連結:
那要如何執行這些可執行檔呢?
你當然可以輸入 ./node_modules/.bin/cowsay
來執行它,這是可行的,但是npx是一個更好的選擇。它是自從npm 5.2版本開始包含的工具,你只需要執行:
npx cowsay
npx 將能找到套件的位置,並執行它。