Cách làm việc với Nodemon, Node.js Monitor

Nodemon là tiện ích giao diện dòng lệnh hỗ trợ xây dựng các ứng dụng Node.js bằng cách tích cực khởi động lại ứng dụng node khi nó phát hiện thay đổi file trong thư mục.

Cách dùng Nodemon

Bài viết sẽ hướng dẫn bạn cách cài đặt và cấu hình nodemon phù hợp với nhu cầu cũng như khắc phục lỗi thường xảy ra khi dùng nodemon.

Tại sao nên dùng Nodemon?

Khi phát triển server web hoặc app backend, bạn buộc phải thay đổi code để xử lý lỗi và cải thiện cấu trúc cũng như logic của chương trình.

Nodemon hỗ trợ bằng cách tự động khởi động lại server khi bạn thực hiện thay đổi code của nó. Điều này giúp bạn tiết kiệm thời gian và cho phép gỡ lỗi dễ hơn.

Cách cài đặt Nodemon

Bạn có thể cài đặt Nodemon cục bộ dưới dạng phần phụ thuộc hoặc chung trên đường dẫn hệ thống.

Để cài đặt nodemon trên toàn cầu, chạy lệnh npm sau trong terminal của máy tính:

npm install nodemon --globally

Để cài đặt nodemon nội bộ, bạn cần chạy lệnh npm sau bên trong thư mục dự án ở terminal:

npm install nodemon --save-dev

Khởi động Nodemon trong ứng dụng web server

Khởi động nodemon và dùng nó để xem ứng dụng web server trong một vài bước. Khối code bên dưới là một tập lệnh cơ bản cho server lưu thông báo chuỗi cho console:

// app.js
const express = require('express');
const app = express();

app.listen((5000), ()=>{
    console.log(`I'm learning about nodemon`)
});

Để bắt đầu xem tập lệnh này, chạy lệnh nodemon sau tên của file cần xem:

nodemon app.js

Kết quả sẽ bao gồm dữ liệu giống như văn bản sau:

[nodemon] starting `node app.js`
I'm learning about nodemon

Sau khi nodemon khởi động thành công, bất kỳ thay đổi trên file app.js sẽ tải lại hoàn toàn app server.

Bạn có thể thoát nodemon bằng cách nhấn Ctrl+C trong terminal của máy tính. Bạn cũng có thể khởi động lại quá trình nodemon bằng cách nhập lệnh rs.

Dùng Nodemon với các tùy chọn dòng lệnh

Nodemon có một số lựa chọn dòng lệnh mà bạn có thể dùng để chỉnh sửa hành vi của nó.
Để xem một danh sách toàn bộ các lựa chọn nodemon và chức năng có sẵn của chúng, chạy lệnh này:

nodemon --help options

Một trong số những lựa chọn có sẵn là:

--delay: Khi thay đổi file, nodemon mặc định đợi vài giây trước khi khởi động lại quá trình này. Bạn có thể chỉ định độ trễ khác bằng switch --delay. Bạn có thể chọn số lượng thời gian mà nodemon đợi trước khi khởi động lại. Ví dụ:

nodemon --delay five app.js

--ignore: Tùy chọn này cho phép bạn bỏ qua các file cụ thể trong ứng dụng web server. Bạn có thể dùng tùy chọn switch như sau:

nodemon --ignore lib/app.js

--watch: Mặc định, khi chạy, nodemon giám sát thư mục hoạt động hiện tại. Để kiểm soát lựa chọn đó, dùng --watch để thêm các đường dẫn file cụ thể và thay đổi thư mục đang được giám sát. Ví dụ, giám sát một thư mục server:

nodemon --watch server

--exec: Dù nó là một tiện ích JavaScript, bạn cũng có thể dùng Nodemon để xem file không phải JavaScript như TypeScript, Python và Golang. Bạn có thể dùng tùy chọn --exec để có hàm tải lại tự động của nodemon trong các tập lệnh như thế. Ví dụ, dùng nodemon trong tập lệnh TypeScript:

nodemon --exec ts-node

--ext: Mặc định Nodemon tìm file với các phần mở rộng JavaScript, TypeScript, CoffeeScript, và JSON. Điều này do các dự án Node.js có thể hoạt động với TypeScript và CoffeeScript biên dịch thành JavaScript thuần tùy trước khi được thực thi. Mặt khác, file JSON cũng được giám sát bởi chúng thường được dùng để lưu metadata cho dự án Node.js. Bạn có thể dùng switch -e hoặc --ext để xác định một danh sách được phân cách bằng dấu phẩy của file muốn xem. Ví dụ, để giám sát file có định dạng: .js, .json và .mjs:

nodemon --ext js,json,mjs

Dùng file cấu hình Nodemon

Nodemon hỗ trợ các file cấu hình cục bộ và toàn cầu. Bạn có thể tìm thấy chúng trong thư mục chính hoặc gốc của dự án, thường được gọi là nodemon.json. Bằng cách này, bạn có thể lưu cấu hình nodemon và dễ dàng tái sử dụng chúng với dự án khác.

Các tùy chọn dòng lệnh sẽ luôn ghi đè cài đặt file cấu hình. Thứ tự ưu tiên hoạt động bao gồm các tùy chọn dòng lệnh, cục bộ và file cấu hình.

Một file cấu hình có thể dùng bất kỳ lựa chọn dòng lệnh làm giá trị khóa JSON. Ví dụ:

{
  "watch": [ "server" ],
  "ext": [ "js", "ts", "json" ],
  "delay": "5000",
  "ignore": [ "lib/app.js" ]
}

Ở file nodemon.json trên, nodemon được thiết lập để xem thư mục server, chỉ định file ở định dạng .js, .ts và , .json, trì hoãn 5 giây trước khi khởi động lại sau thay đổi file và cuối cùng bỏ qua thay đổi file trong lib/app.js.

Xử lý lỗi Nodemon

Đầu tiên, bạn cần biết nguyên nhân gây ra vấn đề. Dưới đây là lỗi phổ biến mà bạn có thể gặp phải khi làm việc với nodemon:

[nodemon] app crashed - waiting for file changes before starting…

Có một số lí do tại sao thông báo lỗi này có thể xảy ra và đây là cách khắc phục:

  • Sai cú pháp JavaScript trong tệp nodemon đang giám sát. Giải pháp: Sửa lại cú pháp sai.
  • Chạy nhiều tác vụ trên nền cũng có thể ảnh hưởng tới tác vụ này. Giải pháp: Dừng tất cả tác vụ chạy ẩn trên nền.
  • Sắp xếp sai thư mục cũng có thể gây ra vấn đề. Giải pháp: Sắp xếp thư mục hợp lí.

Trên đây là cách dùng nodemon cơ bản. Hi vọng bài viết hữu ích với các bạn.

Thứ Hai, 16/01/2023 15:14
31 👨 2.175
0 Bình luận
Sắp xếp theo