Node.js - NPM

NPM − là viết tắt của Node Package Manager, đề cập đến công cụ dòng lệnh để cài đặt các gói Node.js, quản lý phiên bản và quản lý phụ thuộc của các gói Node.js. Nó cũng cung cấp một kho trực tuyến cho các gói/module node.js có thể tìm kiếm trên https://www.npmjs.com/ . Tài liệu chi tiết về các lệnh NPM cũng có sẵn tại liên kết này.

Nếu bạn đang làm việc với các phiên bản mới hơn của Node.js (phiên bản 0.6.0 trở lên), tiện ích NPM được bao gồm trong các tệp nhị phân Node.js cho tất cả các gói nền tảng hệ điều hành. Kiểm tra phiên bản của NPM trong terminal lệnh −

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

Trong trường hợp bạn có phiên bản NPM cũ hơn, bạn cần cập nhật nó lên phiên bản mới nhất bằng cách sử dụng lệnh sau.

npm install npm -g

Lưu ý rằng YARN và PNPM cũng có sẵn như là các lựa chọn thay thế cho NPM. YARN cài đặt các gói nhanh hơn và quản lý các phụ thuộc một cách nhất quán trên các máy hoặc trong các môi trường offline an toàn. PNPM (Performant NPM) là một trình quản lý gói nhanh và tiết kiệm không gian đĩa cho các gói Node.js.

Nếu ứng dụng Node.js của bạn phụ thuộc vào một hoặc nhiều gói bên ngoài, chúng phải được cài đặt từ kho NPM. Các gói NPM được cài đặt theo hai chế độ: cục bộ hoặc toàn cầu. Theo mặc định, một gói được cài đặt ở chế độ cục bộ.

Install Package Locally

Có một cú pháp đơn giản để cài đặt bất kỳ mô-đun Node.js nào −

npm install <Module Name>

Ví dụ, lệnh sau đây được sử dụng để cài đặt một module framework web Node.js nổi tiếng có tên là express −

npm install express

Bây giờ bạn có thể sử dụng mô-đun này trong tệp js của bạn như sau −

var express = require('express');

Cài đặt chế độ cục bộ của một gói đề cập đến việc cài đặt gói trong thư mục node_modules nằm trong thư mục nơi ứng dụng Node hiện diện. Các gói được triển khai cục bộ có thể được truy cập thông qua phương thức require(). Sử dụng --save ở cuối lệnh cài đặt để thêm mục phụ thuộc vào file package.json của ứng dụng của bạn.

Tệp package.json là một tệp JSON được sử dụng để quản lý các phụ thuộc trong các dự án Node.js. Nó chứa thông tin về dự án, chẳng hạn như tên, phiên bản và các phụ thuộc. Tệp package.json được sử dụng bởi trình quản lý gói npm để cài đặt và quản lý các phụ thuộc.

Tệp package.json thường nằm trong thư mục gốc của một dự án Node.js. Nó có thể được tạo ra bằng cách chạy lệnh npm init.

Tạo một thư mục mới cho một dự án Node.js mới, và chạy lệnh `pnpm init` bên trong thư mục đó.

PS D:\nodejs\newnodeapp> npm init

Tiện ích này sẽ hướng dẫn bạn tạo một tệp 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)

Sắp viết vào 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"
}

Bây giờ, nếu chúng ta cài đặt gói express vào gói này một cách cục bộ trong dự án này, hãy sử dụng lệnh sau, nó cũng sẽ thêm mục phụ thuộc vào file package.json.

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

Tệp package.json trong thư mục này sẽ được cập nhật thành −

{
   "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"
   }
}

Mã gói express sẽ được đặt trong thư mục con node_modules của thư mục gói.

Nếu bạn đã đặt tất cả các phụ thuộc của dự án trong tệp package.json của mình, tất cả chúng sẽ được cài đặt cùng một lúc chỉ bằng cách chạy npm install (mà không cần tên gói nào ở phía trước).

Bạn cũng có thể sử dụng cờ -save-dev trong lệnh npm install để thêm gói như một DevDependency.

  • --save-dev cài đặt và thêm mục vào tệp package.json trong devDependencies.

  • --no-save cài đặt nhưng không thêm mục vào phần phụ thuộc của tệp package.json.

  • --save-optional cài đặt và thêm mục vào tệp package.json trong phần optionalDependencies.

  • --no-optional sẽ ngăn chặn việc cài đặt các phụ thuộc tùy chọn.

Các viết tắt của các cờ cũng có thể được sử dụng −

  • -S: --save

  • -D: --save-dev

  • -O: --save-optional

Sự khác biệt giữa devDependencies và dependencies là devDependencies chứa các công cụ phát triển, như thư viện kiểm tra, trong khi dependencies được đóng gói cùng với ứng dụng trong môi trường sản xuất.

Install Package Globally

Các gói/điện phụ được cài đặt toàn cầu được lưu trữ trong thư mục hệ thống. Những phụ thuộc này có thể được sử dụng trong chức năng CLI (Giao diện Dòng Lệnh) của bất kỳ node.js nào nhưng không thể được nhập trực tiếp bằng require() trong ứng dụng Node. Bây giờ hãy thử cài đặt mô-đun express bằng cách cài đặt toàn cầu.

npm install express -g

Điều này sẽ tạo ra một kết quả tương tự nhưng mô-đun sẽ được cài đặt toàn cầu. Trên Linux, các gói toàn cầu được đặt trong thư mục /usr/lib/node_modules, trong khi trên Windows, đường dẫn là C:\Users\your-username\AppData\Roaming\npm\node_modules.

Update Package

Để cập nhật gói đã cài đặt cục bộ trong dự án Node.js của bạn, hãy mở dòng lệnh hoặc terminal trong thư mục dự án của bạn và viết lệnh cập nhật sau.

npm update <package name>

Lệnh sau đây sẽ cập nhật mô-đun ExpressJS hiện có lên phiên bản mới nhất.

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

Uninstall Packages

Để gỡ cài đặt một gói khỏi các phụ thuộc của dự án của bạn, hãy sử dụng lệnh sau để xóa một gói cục bộ khỏi dự án của bạn.

npm uninstall <package name>

Lệnh sau đây sẽ gỡ cài đặt ExpressJS khỏi ứng dụng.

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

Mục gói cũng sẽ được xóa khỏi danh sách các phụ thuộc trong tệp package.json.