"Node.js mạnh không chỉ vì Runtime, mà còn vì hệ sinh thái hàng triệu package được chia sẻ thông qua npm."
🎯 Mục tiêu bài học
Sau bài này bạn sẽ:
Hiểu npm là gì.
Biết vai trò của package.json.
Phân biệt dependencies và devDependencies.
Hiểu package-lock.json dùng để làm gì.
Biết sử dụng scripts để tự động hóa công việc.
Có thể quản lý package trong dự án Node.js một cách chuyên nghiệp.
npm là gì?
npm (Node Package Manager) là trình quản lý package đi kèm khi cài đặt Node.js.
Nó giúp bạn:
Cài thư viện
Gỡ thư viện
Cập nhật thư viện
Chạy script
Quản lý phiên bản package
Chia sẻ package với cộng đồng
Có thể hiểu đơn giản:
npm giống như "App Store" dành cho lập trình viên Node.js.
Hiện nay npm là một trong những kho mã nguồn mở lớn nhất thế giới với hàng triệu package.
Kiểm tra npm
Sau khi cài Node.js:
npm -v
Ví dụ:
11.5.0
Kiểm tra Node:
node -v
Ví dụ:
v24.8.0
package.json là gì?
Đây là "chứng minh nhân dân" của dự án Node.js.
Ví dụ:
{
"name": "hello-node",
"version": "1.0.0",
"description": "Project đầu tiên",
"type": "module",
"main": "app.js",
"scripts": {
"start": "node app.js"
}
}
Trong đó:
| Thuộc tính | Ý nghĩa |
|---|---|
| name | Tên project |
| version | Phiên bản |
| description | Mô tả |
| type | module hoặc commonjs |
| main | File chạy chính |
| scripts | Các lệnh tắt |
| dependencies | Thư viện cần khi chạy |
| devDependencies | Thư viện phục vụ phát triển |
Tạo package.json
Khởi tạo nhanh:
npm init
npm sẽ hỏi từng thông tin:
package name:
version:
description:
entry point:
Sau khi hoàn thành sẽ sinh:
package.json
Tạo nhanh không cần hỏi
npm init -y
Đây là cách được dùng nhiều nhất.
package-lock.json là gì?
Sau khi cài package:
npm install express
Bạn sẽ thấy:
package-lock.json
Nhiều người mới học thường xóa file này vì tưởng không quan trọng.
Thực tế:
package-lock.json cực kỳ quan trọng.
Nó ghi lại:
phiên bản chính xác của package
toàn bộ package phụ thuộc (dependency tree)
giúp mọi máy cài đặt giống hệt nhau
tăng tốc quá trình cài đặt
Ví dụ:
"express": {
"version": "5.1.0"
}
Nhờ vậy, đồng đội và máy chủ triển khai sẽ sử dụng đúng phiên bản đã kiểm thử.
Cài package
Ví dụ:
npm install express
Hoặc:
npm i express
Kết quả:
node_modules/
package.json
package-lock.json
Trong package.json:
"dependencies": {
"express": "^5.1.0"
}
dependencies
Đây là các package bắt buộc khi chương trình chạy.
Ví dụ:
npm install express
//👉 Framework xây dựng Web Server và REST API.
npm install prisma
//👉 ORM giúp làm việc với cơ sở dữ liệu SQL (MySQL, PostgreSQL, SQLite...).npm install mongoose
//👉 ODM giúp làm việc với cơ sở dữ liệu MongoDB.Đây đều là:
dependencies
devDependencies
Một số package chỉ phục vụ lập trình.
Ví dụ:
npm install --save-dev nodemon
hoặc:
npm i -D nodemon
Trong package.json:
"devDependencies": {
"nodemon": "^3.2.0"
}
Các package phổ biến:
nodemon
eslint
prettier
jest
typescript
Chúng hỗ trợ quá trình phát triển nhưng không cần thiết khi ứng dụng chạy trên môi trường Production.
dependencies và devDependencies khác nhau thế nào?
| dependencies | devDependencies |
|---|---|
| Cần khi chạy ứng dụng | Chỉ dùng khi phát triển |
| Deploy lên Server | Không bắt buộc deploy |
| express | nodemon |
| prisma client | eslint |
| mongoose | prettier |
| bcrypt | jest |
node_modules
Sau khi cài package:
npm install
npm tạo:
node_modules/
Đây là nơi chứa:
express
prisma
mongoose
axios
lodash
và hàng trăm package phụ thuộc khác.
Ví dụ:
node_modules
│
├── express
├── body-parser
├── debug
├── mime
└── ...
⚠️ Không chỉnh sửa trực tiếp thư mục này vì npm sẽ quản lý toàn bộ nội dung.
scripts
Scripts giúp rút ngắn các lệnh thường dùng.
Ví dụ:
"scripts": {
"start": "node app.js"
}
Chạy:
npm start
thay vì:
node app.js
Ví dụ:
"scripts": {
"dev": "node app.js"
}
Chạy:
npm run dev
Ví dụ dùng nodemon:
"scripts": {
"dev": "nodemon app.js"
}
Sau đó:
npm run dev
Mỗi khi lưu file:
Restarting...
Node.js sẽ tự chạy lại mà không cần dừng và khởi động thủ công.
Cài nhiều package
npm install express dotenv cors
Hoặc:
npm i express dotenv cors
Gỡ package
npm uninstall express
Hoặc:
npm remove express
Cập nhật package
npm update
Cài lại toàn bộ package
Nếu đã có:
package.json
Chỉ cần:
npm install
npm sẽ tự tải tất cả package được khai báo trong dự án.
.gitignore
Khi dùng Git, không nên đưa thư mục node_modules lên kho mã nguồn.
Ví dụ:
node_modules/
Lý do:
Dung lượng rất lớn.
Có thể cài lại từ
package.jsonvàpackage-lock.json.Giúp repository gọn nhẹ và dễ chia sẻ.
Ví dụ dự án hoàn chỉnh
hello-node/
│
├── node_modules/
├── app.js
├── package.json
├── package-lock.json
└── .gitignore
Những lệnh npm thường dùng
| Lệnh | Ý nghĩa |
|---|---|
npm init -y | Khởi tạo dự án |
npm install express | Cài package |
npm i -D nodemon | Cài package phát triển |
npm uninstall express | Gỡ package |
npm update | Cập nhật package |
npm install | Cài toàn bộ package |
npm start | Chạy script start |
npm run dev | Chạy script dev |
Những lỗi người mới thường gặp
Quên chạy npm install
Error: Cannot find module 'express'
→ Hãy chạy:
npm install
Xóa package-lock.json tùy tiện
Điều này có thể khiến các máy cài đặt phiên bản package khác nhau, dẫn đến lỗi khó kiểm soát.
Chỉnh sửa node_modules
Mọi thay đổi sẽ bị ghi đè khi cài đặt lại package.
Cài nhầm package
Ví dụ:
npm install nodemon
Nếu nodemon chỉ dùng khi phát triển, nên cài bằng:
npm i -D nodemon
để giữ danh sách phụ thuộc gọn gàng và đúng mục đích.
Tổng kết
Trong bài học này, chúng ta đã làm quen với npm, công cụ quản lý package không thể thiếu của Node.js. Bạn đã biết cách tạo và cấu hình package.json, hiểu vai trò của package-lock.json, phân biệt dependencies và devDependencies, cũng như sử dụng scripts để đơn giản hóa các thao tác hằng ngày.
Đây là nền tảng quan trọng trước khi bước vào Node.js Core, nơi chúng ta sẽ bắt đầu làm việc trực tiếp với các module tích hợp sẵn của Node.js.
Bài tiếp theo
👉 Bài 06 — File System (fs)
Bạn sẽ học cách:
Đọc và ghi file.
Tạo, đổi tên và xóa file.
Làm việc với thư mục.
Sử dụng cả API đồng bộ (Sync) và bất đồng bộ (Async) của module
fs.Xây dựng các tiện ích quản lý tệp tin bằng Node.js mà không cần cài thêm thư viện.
x1
quay về MỤC LỤC




Không có nhận xét nào:
Đăng nhận xét