目錄
關於套件和模組
目錄
npm 註冊表包含套件,其中許多套件也是 Node 模組,或包含 Node 模組。請繼續閱讀,了解它們的差異以及它們如何互動。
關於套件
套件是一個由 package.json
檔案描述的檔案或目錄。套件必須包含 package.json
檔案才能發佈到 npm 註冊表。如需建立 package.json
檔案的詳細資訊,請參閱「建立 package.json 檔案」。
套件可以是未限定範圍的,或限定範圍到使用者或組織,而限定範圍的套件可以是私人或公開的。如需詳細資訊,請參閱
- 「關於範圍」
- 「關於私人套件」
- 「套件範圍、存取層級和可見性」
關於套件格式
套件是下列任一項
- a) 包含由
package.json
檔案描述的程式的資料夾。 - b) 包含 (a) 的壓縮 tarball。
- c) 解析為 (b) 的 URL。
- d) 在註冊表上發佈 (c) 的
<name>@<version>
。 - e) 一個指向 (d) 的
<name>@<tag>
。 - f) 一個具有滿足 (e) 的
latest
標籤的<name>
。 - g) 一個
git
網址,複製後會產生 (a)。
npm 套件 git URL 格式
用於 npm 套件的 Git 網址可以格式化為以下方式
git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish
commit-ish
可以是任何標籤、SHA 或分支,可以作為參數提供給 git checkout
。預設的 commit-ish
是 HEAD
。
關於模組
模組是 node_modules
目錄中任何可以由 Node.js require()
函式載入的檔案或目錄。
要由 Node.js require()
函式載入,模組必須符合下列其中一項
- 一個包含
"main"
欄位的package.json
檔案的資料夾。 - 一個 JavaScript 檔案。
注意:由於模組不需要有 package.json
檔案,因此並非所有模組都是套件。只有具有 package.json
檔案的模組才是套件。
在 Node 程式碼的脈絡中,module
也是從檔案中載入的內容。例如,在以下程式碼中
var req = require('request')
我們可能會說「變數 req
參照 request
模組」。