將 Node.js 模塊發佈到 NPM
簡介
NPM 代表節點包管理器 並且指的是在線項目存儲庫或命令行界面 (CLI) 工具,用於與在線存儲庫進行交互。
目前,NPM 是世界上最大的軟件註冊中心,擁有超過 140 萬個代碼包。例如,如果您想使用 Node.js 發送電子郵件 - 您可以在他們的存儲庫中快速搜索並找到像 Nodemailer 這樣的模塊,這可以為您節省大量時間。
您可能希望與社區共享您創建的工具,以簡化一些樣板任務。在本文中,我們將了解如何將 Node.js 模塊發佈到 NPM。
NPM 入門
要將模塊發佈到 NPM,我們需要有一個 NPM 帳戶。如果沒有,可以在這裡創建。
安裝 Node.js 時,npm
工具也會自動安裝。
檢查是否npm
已經安裝好了,可以通過運行查看當前安裝的版本是什麼:
$ npm -v
一旦確定我們確實得到了 npm
安裝好了,我們就可以登錄了:
$ npm login
該工具會提示我們輸入註冊時創建的 ID、電子郵件和密碼。
注意: 使用 NPM 不需要帳戶,但要發布模塊,您需要一個帳戶,因為它與作者相關聯。
創建包
讓我們為我們的項目創建一個目錄並進入它:
$ mkdir publish-to-npm
$ cd publish-to-npm
接下來,我們將初始化項目:
$ npm init
然後,該命令將提示您幾個問題,填寫這些問題後,會生成一個 package.json
文件:
{
"name": "publish-to-npm",
"version": "1.0.0",
"description": "\"Sample module for publishing\"",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "[email protected]",
"license": "ISC"
}
默認情況下,主入口點是 index.js
,所以我們要創建該文件並向其添加一些內容。
如果您使用 -y
init
旁邊的標誌 命令,這些將被設置為默認值。
添加依賴
讓我們在 index.js
中添加一些代碼 文件並添加一個依賴項,例如另一個 NPM 模塊供它使用。
首先,我們將安裝一個依賴項:
$ npm install node-fetch --save
然後,我們將它導入到我們的 index.js
文件並添加一些邏輯:
const fetch = require('node-fetch');
fetch('https://google.com')
.then(res => res.text())
.then(text => console.log(text))
為了驗證這是否有效,我們可以運行:
$ node index.js
免費電子書:Git Essentials
查看我們的 Git 學習實踐指南,其中包含最佳實踐、行業認可的標準以及隨附的備忘單。停止谷歌搜索 Git 命令並真正學習 它!
輸出是:
<!doctype html>
<html itemscope="" itemtype="http://schema.org/WebPage" lang="en-RS">
<head>
<meta charset="UTF-8">
<meta content="origin" name="referrer">
<!-- Rest of the page -->
檢查 package.json
時 文件,我們可以看到 node-fetch
在我們的依賴項中:
{
"name": "publish-to-npm",
"version": "1.0.0",
"description": "\"Sample module for publishing\"",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "[email protected]",
"license": "ISC"
"dependencies": {
"node-fetch": "2.6.1"
}
}
注意: --save
標誌告訴 npm
使用模塊作為依賴項更新項目。這已在較新的版本中解除,即使沒有 --save
,該模塊也會添加到依賴項列表中 但是,對於舊版本,您必須使用它。
發佈到 NPM
現在,我們可以通過 publish
將模塊發佈到 NPM 命令:
$ npm publish
如果您收到任何錯誤,很可能是因為名稱衝突。也就是說,npm 上已經存在同名的包。我們必須將項目名稱更改為獨特的名稱。
可以通過首頁的搜索欄搜索已有的包名。
在你想出一個唯一的名字後,你必須在我們的 package.json
中更改包名 文件。為了保持一致性,還建議更新文件夾名稱以匹配包名稱。
如果你不能想出一個唯一的名字,你應該檢查作用域包。這實際上在 NPM 上為您提供了自己的命名空間,因此您可以隨意命名您的包。
通常建議,如果您打算公開一個模塊,您仍然避免使用與另一個包相同的名稱,以避免不必要的混淆。不過個人用還是很實用的。
這是我們使用 -y
避免更改的設置之一 旗幟。如果你想創建一個作用域模塊,你需要初始化你的項目:
$ npm init [email protected]
結論
在本文中,我們編寫了一個簡單的應用程序並將其作為公共模塊發佈到 NPM,供其他開發人員在方便時使用。
您將來可能會遇到一種情況,即您找不到現成的模塊來解決您的特定問題。您可以自己編寫解決方案並將其上傳到 NPM,也許可以幫助其他遇到相同問題的開發人員。