JavaScript >> Javascript 文檔 >  >> Node.js

將 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,也許可以幫助其他遇到相同問題的開發人員。


Tutorial JavaScript 教程
  1. ReactJs 中的圖像壓縮

  2. 為什麼我的 props 動作在“onClick”中的“if”語句中不起作用,但在“if”語句之外起作用?

  3. 三元運算符

  4. 在 PDF 中嵌入 SVG(使用 JS 將 SVG 導出為 PDF)

  5. webpack 或 esbuild:為什麼不兩者兼而有之?

  6. 深入了解 Sequelize 查詢:動態字段名稱、Op 對象和原始 SQL 插入

  7. 使用 Feathers + React 創建聊天

  1. 使用 golang 重寫 nodejs cli

  2. 在多邊形上部署再生 NFT

  3. jQuery Form 多提交 preventDefault()

  4. 在每種情況下生成一個 5 位數字的 JavaScript 表達式

  5. (現在比以往任何時候都多)你可能不需要 jQuery

  6. 引入多窗口測試(Beta)

  7. 介紹格里爾

  1. 何時使用 Vue 而不是 React

  2. Web 服務與 API

  3. 如何將 Firebase 身份驗證與 Expo 應用程序集成

  4. 使用 Auth0 Pt 保護微服務。 2(資源服務)