• Node.js Video Tutorials

Node.js - NPM



NPM - Node Package Manager 的縮寫,指的是用於安裝 Node.js 包、執行版本管理和 Node.js 包依賴管理的命令列工具。它還提供了一個 Node.js 包/模組的線上儲存庫,可以在 https://www.npmjs.com/ 上搜索。此連結還提供了 NPM 命令的詳細文件。

如果您使用的是較新的 Node.js 版本(0.6.0 或更高版本),則 NPM 工具包含在所有作業系統平臺捆綁包的 Node.js 二進位制檔案中。在命令終端中檢查 NPM 的版本 -

PS C:\Users\mlath> npm -v
10.1.0

如果您使用的是較舊版本的 NPM,則需要使用以下命令將其更新到最新版本。

npm install npm -g

請注意,YARN 和 PNPM 工具也可用作 NPM 的替代方案。YARN 可以更快地安裝包,並在不同機器或安全的離線環境中一致地管理依賴項。PNPM(Performant NPM)是另一個快速且節省磁碟空間的 Node.js 包管理器。

如果您的 Node.js 應用程式依賴於一個或多個外部包,則必須從 NPM 儲存庫中安裝它們。NPM 包以兩種模式安裝:本地或全域性。預設情況下,包以本地模式安裝。

本地安裝包

安裝任何 Node.js 模組都有一個簡單的語法 -

npm install <Module Name>

例如,以下命令用於安裝一個名為 express 的著名 Node.js Web 框架模組 -

npm install express

現在您可以在您的 js 檔案中按如下方式使用此模組 -

var express = require('express');

包的本地模式安裝是指將包安裝到 Node 應用程式所在的資料夾中的 node_modules 目錄中。本地部署的包可以透過 require() 方法訪問。在安裝命令的末尾使用 --save 將依賴項條目新增到應用程式的 package.json 中。

package.json 檔案是一個 JSON 檔案,用於管理 Node.js 專案中的依賴項。它包含有關專案的資訊,例如其名稱、版本和依賴項。package.json 檔案由 npm 包管理器用於安裝和管理依賴項。

package.json 檔案通常位於 Node.js 專案的根目錄中。可以透過執行 npm init 命令來建立它。

為新的 Node.js 專案建立一個新資料夾,並在其中執行 pnm init 命令 -

PS D:\nodejs\newnodeapp> npm init

此實用程式將引導您完成建立 package.json 檔案的過程。

It only covers the most common items, and tries to guess sensible defaults.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.

package name: (newnodeapp) newnodeapp
version: (1.0.0)
description: Test Node.js App
entry point: (index.js)
test command:
git repository:
keywords: test, nodejs
author: mvl
license: (ISC)

即將寫入 D:\nodejs\NewNodeApp\package.json -

{
   "name": "newnodeapp",
   "version": "1.0.0",
   "description": "Test Node.js App",
   "main": "index.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
   },
   "keywords": [
      "test",
      "nodejs"
   ],
   "author": "mvl",
   "license": "ISC"
}

現在,如果我們將 express 包本地安裝到此專案中,請使用以下命令,它還會將依賴項條目新增到 package.json 中。

D:\nodejs\newnodeapp>npm install express –save

此資料夾中的 package.json 檔案將更新為 -

{
   "name": "newnodeapp",
   "version": "1.0.0",
   "description": "Test Node.js App",
   "main": "index.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
   },
   "keywords": [
      "test",
      "nodejs"
   ],
   "author": "mvl",
   "license": "ISC",
   "dependencies": {
      "express": "^4.18.2"
   }
}

express 包程式碼將放置在包資料夾的 node_modules 子資料夾中。

如果您已將所有專案依賴項都放在 package.json 檔案中,則只需執行 npm install(前面沒有任何包名稱)即可立即安裝所有依賴項。

您也可以在 npm install 命令中使用 -save-dev 標誌將包新增為 DevDepndency。

  • --save-dev 安裝並將條目新增到 package.json 檔案的 devDependencies 中

  • --no-save 安裝但不將條目新增到 package.json 檔案的 dependencies 中

  • --save-optional 安裝並將條目新增到 package.json 檔案的 optionalDependencies 中

  • --no-optional 將阻止安裝可選依賴項

還可以使用標誌的簡寫 -

  • -S: --save

  • -D: --save-dev

  • -O: --save-optional

devDependencies 和 dependencies 之間的區別在於,前者包含開發工具(例如測試庫),而後者則與生產環境中的應用程式捆綁在一起。

全域性安裝包

全域性安裝的包/依賴項儲存在系統目錄中。此類依賴項可以在任何 Node.js 的 CLI(命令列介面)功能中使用,但不能直接在 Node 應用程式中使用 require() 匯入。現在讓我們嘗試使用全域性安裝來安裝 express 模組。

npm install express -g

這將產生類似的結果,但模組將被全域性安裝。在 Linux 上,全域性包放置在 /usr/lib/node_modules 資料夾中,而在 Windows 上,路徑為 C:\Users\your-username\AppData\Roaming\npm\node_modules。

更新包

要更新 Node.js 專案中本地安裝的包,請在專案專案資料夾中開啟命令提示符或終端,然後編寫以下更新命令。

npm update <package name>

以下命令將現有 ExpressJS 模組更新到最新版本。

PS D:\nodejs\newnodeapp> npm update express

up to date, audited 63 packages in 2s

11 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

解除安裝包

要從專案的依賴項中解除安裝包,請使用以下命令從專案中刪除本地包。

npm uninstall <package name>

以下命令將從應用程式中解除安裝 ExpressJS。

PS D:\nodejs\newnodeapp> npm uninstall express
removed 62 packages, and audited 1 package in 603ms
found 0 vulnerabilities

包條目也將從 package.json 檔案中的依賴項列表中刪除。

廣告