Node.js , NPM, NPX

Trước đây, JavaScript chỉ có thể chạy bên trong Trình duyệt web (như Chrome, Firefox, Safari) để làm hiệu ứng, tương tác trên màn hình.

Node.js ra đời đóng vai trò như một "môi trường thực thi" (Runtime) cho phép bạn chạy mã JavaScript trực tiếp trên Máy tính / Server (tương tự như cách bạn cài đặt ngôn ngữ Python để chạy file .py trên máy).

  • JavaScript trong Trình duyệt: Thao tác với nút bấm, thẻ HTML, giao diện web.

  • JavaScript trong Node.js: Đọc/ghi file trên ổ cứng, kết nối Cơ sở dữ liệu, tạo Server chạy ứng dụng backend.

2. Phân biệt bộ ba: Node.js, NPM và NPX

Để không bị rối, hãy nhớ mối quan hệ giữa 3 khái niệm này qua hình ảnh thực tế:

Khái niệm Tương đương trong thực tế Vai trò
Node.js Bếp trưởng Môi trường thực thi, chạy mã JavaScript.
NPM (Node Package Manager) KHO NGUYÊN LIỆU & CÔNG CỤ Trình quản lý thư viện (Package Manager). Giúp tải, cài đặt, quản lý các thư viện do cộng đồng viết sẵn.
NPX (Node Package Execute) DỊCH VỤ CHO THUÊ CÔNG CỤ DÙNG 1 LẦN Công cụ chạy trực tiếp một gói thư viện/script mà không cần tải về cài đặt vĩnh viễn vào máy.

3. Thực hành Step-by-Step từ cơ bản

Bước 1: Kiểm tra cài đặt Node.js & NPM trên máy

Mở ứng dụng Terminal (macOS/Linux) hoặc Command Prompt / PowerShell (Windows) và gõ các lệnh sau:

Bash
# Kiểm tra phiên bản Node.js
node -v

# Kiểm tra phiên bản NPM (NPM tự động đi kèm khi bạn cài Node.js)
npm -v

Bước 2: Tạo chương trình Node.js đầu tiên

  1. Tạo một thư mục mới và truy cập vào đó:

    Bash
    mkdir demo-node && cd demo-node
    
  2. Tạo một file đặt tên là hello.js và dán đoạn code đơn giản sau vào:

    // hello.js
    const name = "Node.js";
    console.log(`Xin chào! Đây là chương trình chạy trên ${name}`);
  1. Thực thi file bằng Node.js:

    Bash
    node hello.js
    

    Màn hình Terminal sẽ in ra: Xin chào! Đây là chương trình chạy trên Node.js

Bước 3: Khởi tạo Dự án với NPM & File package.json

File package.json giống như "Tờ khai lý lịch" của một dự án Node.js. Nó ghi lại tên dự án, danh sách các thư viện đã cài đặt, và các lệnh tắt để chạy dự án.

Khởi tạo dự án bằng lệnh:

Bash
npm init -y

(Cờ -y dùng để đồng ý tất cả cài đặt mặc định).

Lúc này, một file package.json sẽ được tạo ra với nội dung tương tự:

{
  "name": "demo-node",
  "version": "1.0.0",
  "main": "hello.js",
  "scripts": {
    "start": "node hello.js"
  }
}

Bây giờ bạn có thể chạy chương trình bằng lệnh tắt:

Bash
npm start

Bước 4: Cài đặt Thư viện ngoài bằng NPM

Giả sử bạn muốn dùng thư viện chalk (một thư viện phổ biến giúp in màu sắc ra màn hình Terminal).

  1. Cài đặt thư viện chalk:

    Bash
    npm install chalk
    

    Khi lệnh này chạy xong, bạn sẽ thấy 2 thay đổi:

    • File package.json tự động cập nhật thêm mục "dependencies": { "chalk": "..." }.

    • Xuất hiện thư mục node_modules/ (Nơi chứa toàn bộ mã nguồn của thư viện vừa tải về).

  2. Dùng thư viện trong code (app.js): Lưu ý: Để dùng cú pháp import hiện đại, hãy thêm dòng "type": "module" vào file package.json.

// app.js
import chalk from 'chalk';

console.log(chalk.green('Thành công rồi! Chữ này có màu xanh lá.'));
console.log(chalk.red.bold('Cảnh báo! Chữ này màu đỏ và in đậm.'));
  1. Chạy thử:

    Bash
    node app.js
    

Bước 5: Sử dụng NPX để chạy lệnh dùng 1 lần

Bạn muốn kiểm tra thông tin hệ thống hoặc tạo khung dự án nhanh mà không muốn cài ứng dụng đó vào máy làm rác ổ cứng? Hãy dùng npx.

Ví dụ: In ra thông tin cấu hình máy tính của bạn trực tiếp bằng công cụ envinfo mà không cần cài đặt:

Bash
npx envinfo

(NPX sẽ tự động tải envinfo về bộ nhớ tạm, chạy lệnh, hiển thị kết quả và tự dọn dẹp sau khi xong).

4. Tóm tắt các câu lệnh NPM / NPX cần nhớ lòng bàn tay

Lệnh Ý nghĩa
npm init -y Khởi tạo file package.json cho dự án mới.
npm install <tên-thư-viện> Cài đặt một thư viện vào dự án (Ví dụ: npm install express).
npm install Tải lại tất cả thư viện ghi trong file package.json (dùng khi bạn tải code dự án từ Git về).
npm start Chạy lệnh cấu hình trong mục scripts.start của file package.json.
npx <tên-gói> Chạy trực tiếp một công cụ CLI mà không cần cài vĩnh viễn.