npm là gì? Cách quản lý package trong JavaScript
Khi bắt đầu học JavaScript, bạn sẽ liên tục gặp một câu lệnh quen thuộc:
npm install
"npm là gì?", "Tại sao phải chạy lệnh này?" — Đây là câu hỏi mà hầu hết người mới học đều thắc mắc. Bài viết này sẽ giải thích npm từ đầu: npm là gì, tại sao cần thiết và cách sử dụng các lệnh cơ bản. Nếu bạn đã biết JavaScript là gì, đây là thời điểm hoàn hảo để tìm hiểu npm — công cụ cốt lõi của hệ sinh thái JavaScript.
npm là gì?
npm (viết tắt của Node Package Manager) là trình quản lý gói (package manager) mặc định của Node.js, đồng thời là registry (kho lưu trữ) package lớn nhất thế giới dành cho JavaScript.
npm có hai vai trò chính:
- Công cụ dòng lệnh (CLI) — Tập hợp các lệnh để cài đặt, xóa và quản lý package trên máy tính
- Registry package — Cơ sở dữ liệu trực tuyến chứa hơn 2 triệu package JavaScript do cộng đồng đóng góp
Hãy tưởng tượng npm như một App Store, nhưng thay vì ứng dụng điện thoại, nó chứa các thư viện code JavaScript mà bạn có thể sử dụng trong dự án của mình. npm được cài đặt tự động khi bạn cài Node.js — xem hướng dẫn chi tiết tại Cài đặt Node.js.
Tại sao lập trình viên cần npm?
Trước khi có npm, để sử dụng một thư viện JavaScript, bạn phải:
- Truy cập website của thư viện đó để tải file
- Thêm thủ công vào dự án bằng thẻ
<script> - Khi có phiên bản mới, lại tải về và thay thế thủ công
- Tự quản lý các thư viện phụ thuộc lẫn nhau (dependencies)
Với npm, toàn bộ quá trình trên được rút gọn thành một dòng lệnh:
npm install axios
Chỉ vậy thôi. npm xử lý tất cả cho bạn — bao gồm cả các thư viện mà axios phụ thuộc vào.
Cài đặt npm — Bắt đầu từ đâu?
npm được cài kèm với Node.js, vì vậy bạn không cần cài riêng. Sau khi cài Node.js, hãy kiểm tra bằng lệnh sau:
node -v # Kiểm tra phiên bản Node.js (ví dụ: v20.11.0)
npm -v # Kiểm tra phiên bản npm (ví dụ: 10.2.4)
Nếu thấy số phiên bản hiển thị, bạn đã sẵn sàng sử dụng npm. Nếu thấy lỗi command not found, hãy xem bài Hướng dẫn cài đặt Node.js.
Các lệnh npm cơ bản cần biết
Đây là những lệnh npm bạn sẽ dùng hàng ngày:
npm init # Tạo file package.json (khởi tạo dự án)
npm install # Cài tất cả package trong package.json
npm install tên-package # Cài một package cụ thể
npm install -D tên-package # Cài vào devDependencies
npm uninstall tên-package # Gỡ cài đặt package
npm list # Xem danh sách package đã cài
npm run tên-script # Chạy script trong package.json
npm init — Khởi tạo dự án mới
npm init # Hỏi từng bước (tên dự án, phiên bản, mô tả...)
npm init -y # Bỏ qua hỏi, tạo ngay với giá trị mặc định
npm install — Cài đặt package
npm install # Cài tất cả package trong package.json
npm install axios # Cài axios vào dependencies
npm install -D nodemon # Cài nodemon vào devDependencies
npm uninstall — Gỡ cài đặt
npm uninstall axios # Gỡ axios và xóa khỏi package.json
npm run — Chạy script tùy chỉnh
npm run start # Chạy script "start"
npm run dev # Chạy script "dev"
npm run build # Chạy script "build"
package.json là gì? Cấu trúc và ý nghĩa
package.json là file quan trọng nhất trong dự án JavaScript. Nó chứa thông tin về dự án và danh sách tất cả package bạn đang sử dụng. File này sử dụng định dạng JSON — nên rất dễ đọc và chỉnh sửa.
{
"name": "my-project",
"version": "1.0.0",
"description": "Dự án ví dụ về npm",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "webpack --mode production",
"test": "jest"
},
"dependencies": {
"axios": "^1.6.0",
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^3.0.1",
"jest": "^29.7.0"
}
}
- name — Tên dự án (chữ thường, không có khoảng trắng)
- version — Phiên bản hiện tại theo chuẩn Semantic Versioning
- scripts — Các lệnh tùy chỉnh có thể chạy bằng
npm run - dependencies — Package cần thiết khi ứng dụng chạy thực tế (production)
- devDependencies — Package chỉ cần trong quá trình phát triển
node_modules và .gitignore — Tại sao không đưa lên Git?
Khi chạy npm install, npm tạo ra thư mục node_modules chứa toàn bộ code của các package đã cài. Thư mục này có thể lên đến hàng trăm MB và chứa hàng nghìn file.
Hãy tạo file .gitignore và thêm vào:
node_modules/
.env
dist/
build/
Lưu ý: File package-lock.json thì nên đưa lên Git để đảm bảo mọi thành viên trong team dùng cùng phiên bản package.
npm vs npx — Khác nhau thế nào?
| npm | npx | |
|---|---|---|
| Chức năng chính | Quản lý package (cài, xóa) | Chạy package trực tiếp |
| Lưu vào máy? | Có (node_modules) | Không (chạy xong xóa) |
| Dùng khi nào | Thư viện dùng nhiều lần | CLI tool dùng một lần |
# npm: cài express và dùng trong project nhiều lần
npm install express
# npx: tạo project React mà không cần cài create-react-app vĩnh viễn
npx create-react-app my-app
Các package npm phổ biến nên biết
npm install axios # Gửi HTTP request (gọi API)
npm install lodash # Tiện ích xử lý array, object
npm install express # Web framework cho Node.js
npm install dotenv # Đọc biến môi trường từ file .env
npm install -D nodemon # Tự động restart server khi code thay đổi
npm install -D jest # Framework kiểm thử (testing)
const axios = require('axios');
async function layDanhSachBaiViet() {
const res = await axios.get('https://jsonplaceholder.typicode.com/posts');
console.log(res.data.slice(0, 3));
}
layDanhSachBaiViet();
Tổng kết
- npm = Node Package Manager — trình quản lý package cho JavaScript
- npm install — cài package, npm uninstall — gỡ package
- package.json — hồ sơ dự án, ghi lại mọi dependency
- node_modules — không đưa lên Git, thêm vào
.gitignore - npm vs npx — npm để quản lý, npx để chạy trực tiếp
Bước tiếp theo: Thử tự tạo một dự án nhỏ bằng cách chạy npm init -y, cài một package bạn muốn dùng và bắt đầu code! Đừng quên xem lại JavaScript là gì nếu bạn cần ôn lại kiến thức nền, hoặc xem hướng dẫn Cài đặt Node.js nếu chưa cài.