Cách tự động khởi động lại ứng dụng Node.js của bạn với gật gù


Giới thiệu

Trong Node.js, khi bạn thực hiện thay đổi trong code, bạn cần phải khởi động lại quá trình để những thay đổi được áp dụng. Điều này làm tăng thêm một bước trong quy trình làm việc của bạn. Tuy nhiên, bạn có thể loại bỏ bước này bằng cách sử dụng nodemon để tự động khởi động lại quá trình.

Nodemon là một công cụ dòng lệnh (CLI) phát triển bởi @rem, nó giúp theo dõi ứng dụng Node của bạn, theo dõi các tệp tin và tự động khởi động lại quá trình.

Trong bài viết này, chúng ta sẽ tìm hiểu về cách cài đặt, thiết lập và cấu hình nodemon.

Điều kiện tiên quyết

Để theo dõi bài viết này, bạn cần:

Hướng dẫn này đã được xác minh với Node.js v17.1.0, npm v8.1.2, nodemon v2.0.15 và express v4.17.1.

Bước 1 – Cài đặt nodemon

Đầu tiên, bạn cần cài đặt nodemon trên máy tính của bạn. Bạn có thể cài đặt công cụ này toàn cầu hoặc cục bộ trong dự án của bạn sử dụng npm hoặc yarn:

Cài đặt toàn cầu

Bạn có thể cài đặt nodemon toàn cầu bằng cách sử dụng npm:

  • npm install nodemon -global

Hoặc bằng yarn:

Cài đặt cục bộ

Bạn cũng có thể cài đặt nodemon cục bộ cho dự án của bạn với npm:

  • npm install nodemon -save-dev

Hoặc bằng yarn:

Một điều cần lưu ý khi cài đặt cục bộ là bạn sẽ không thể sử dụng lệnh nodemon trực tiếp:

  • Lỗi: lệnh không tìm thấy: nodemon

Bạn có thể thực thi gói cài đặt cục bộ bằng cách:

  • ./node_modules/nodemon/bin/nodemon.js [tên ứng dụng của bạn]

Bạn cũng có thể sử dụng nodemon trong các tập lệnh npm hoặc với npx.

Vậy là đã hoàn thành cài đặt nodemon.

Có Thể Bạn Quan Tâm :   Ad Giải Thích Mấy Giờ Est Là Gì, Mình Thấy Nhiều Quá Nên Rối

Bước 2 – Thiết lập một Dự án Express Ví dụ với nodemon

Bạn có thể sử dụng nodemon để khởi động một ứng dụng Node. Ví dụ: nếu bạn đã thiết lập một máy chủ Express trong tệp server.js, bạn có thể sử dụng nodemon để khởi động ứng dụng và theo dõi những thay đổi như sau:

Bạn cũng có thể truyền tham số giống như khi chạy script với Node:

Mỗi khi bạn thay đổi một tệp với một trong các phần mở rộng mặc định (.js, .mjs, .json, .coffee, hoặc .litcoffee) trong thư mục hiện tại hoặc một thư mục con, quá trình sẽ khởi động lại.

Hãy viết một tệp server.js ví dụ xuất ra thông báo: Ứng dụng Dolphin đang lắng nghe trên cổng ${port}!.

Tệp server.js:

Chạy ví dụ với nodemon:

Kết quả đầu ra trên terminal sẽ hiển thị:

[nodemon] 2.0.15 [nodemon] để khởi động lại vào bất kỳ thời điểm nào, nhập rs [nodemon] theo dõi đường dẫn(s): *.* [nodemon] theo dõi các phần mở rộng: js, mjs, json [nodemon] khởi động quá trình node server.js Ứng dụng Dolphin đang lắng nghe trên cổng 3000!

Trong khi nodemon vẫn đang chạy, hãy thay đổi tệp server.js. Thay đổi sẽ tạo ra một thông báo khác: Ứng dụng Shark đang lắng nghe trên cổng ${port}!.

Kết quả cuối cùng sẽ hiển thị:

[nodemon] khởi động lại do thay đổi… [nodemon] khởi động quá trình node server.js Ứng dụng Shark đang lắng nghe trên cổng 3000!

Đầu ra cuối cùng từ ứng dụng Node.js hiển thị những thay đổi mới.

Bạn cũng có thể khởi động lại quá trình bất kỳ lúc nào bằng cách nhập rs và nhấn ENTER.

Ngoài ra, nodemon cũng sẽ tìm kiếm một tệp main được chỉ định trong tệp package.json của dự án:

package.json:

Nếu không tìm thấy tệp main, nodemon sẽ tìm một kịch bản start:

package.json:

Sau khi bạn thực hiện thay đổi trong package.json, bạn có thể gọi nodemon để khởi động ứng dụng theo chế độ xem mà không cần phải trỏ đến tệp server.js.

Có Thể Bạn Quan Tâm :   Sóc Sờ Bai Là Gì – Lời Bài Hát Sóc Sờ Bai Sóc Trăng

Bước 3 – Sử dụng các tùy chọn

Bạn có thể chỉnh sửa các tùy chọn cấu hình có sẵn cho nodemon.

Dưới đây là một số tùy chọn chính:

  • -exec: Sử dụng -exec để chỉ định một tệp nhị phân để thực thi. Ví dụ, khi kết hợp với tệp nhị phân ts-node, -exec có thể hữu ích cho việc theo dõi và chạy các tệp TypeScript.
  • -ext: Chỉ định các phần mở rộng tệp khác nhau để theo dõi. Để sử dụng công tắc này, hãy cung cấp một danh sách các phần mở rộng tệp được phân tách bằng dấu phẩy (ví dụ: -ext js,ts).
  • -delay: Mặc định, nodemon chờ một giây trước khi khởi động lại quá trình khi có thay đổi trong tệp, nhưng với công tắc -delay, bạn có thể chỉ định một giá trị chậm khác. Ví dụ, nodemon -delay 3.2 sẽ chờ 3,2 giây trước khi khởi động lại.
  • -watch: Sử dụng công tắc -watch để chỉ định nhiều thư mục hoặc tệp để theo dõi. Sử dụng công tắc -watch cho mỗi thư mục bạn muốn theo dõi. Mặc định, thư mục hiện tại và các thư mục con của nó đều được theo dõi. Vì vậy, với công tắc -watch, bạn có thể giới hạn việc theo dõi chỉ cho các thư mục con hoặc tệp cụ thể.
  • -ignore: Sử dụng công tắc -ignore để bỏ qua các tệp, mẫu tệp hoặc thư mục cụ thể.
  • -verbose: Đầu ra dài hơn với thông tin về các tệp đã thay đổi để gây ra khởi động lại.

Bạn có thể xem tất cả các tùy chọn có sẵn bằng lệnh sau:

Trên cơ sở các tùy chọn này, chúng ta hãy tạo lệnh để đáp ứng các kịch bản sau:

  • Theo dõi thư mục server
  • Chỉ định các tệp với phần mở rộng .ts
  • Bỏ qua các tệp có hậu tố .test.ts
  • Thực thi tệp (server/server.ts) bằng ts-node
  • Chờ ba giây trước khi khởi động lại sau khi có thay đổi trong tệp
  • nodemon -watch server -ext ts -exec ts-node -ignore ‘*.test.ts’ -delay 3 server/server.ts
Có Thể Bạn Quan Tâm :   Đoạn văn tổng phân hợp là gì?

[nodemon] 2.0.15 [nodemon] để khởi động lại vào bất kỳ thời điểm nào, hãy nhập rs [nodemon] theo dõi đường dẫn(s): server [nodemon] theo dõi các phần mở rộng: ts [nodemon] khởi động ts-node server/server.ts

Lệnh này kết hợp các tùy chọn -watch, -ext, -exec, -ignore và -delay để đáp ứng các điều kiện cho kịch bản của chúng ta.

Bước 4 – Sử dụng cấu hình

Trong ví dụ trước, thêm các công tắc cấu hình khi chạy nodemon có thể trở nên khá tẻ nhạt. Giải pháp tốt hơn cho các dự án yêu cầu cấu hình phức tạp là định nghĩa các tùy chọn trong tệp nodemon.json.

Ví dụ: dưới đây là tệp cấu hình tương tự như ví dụ lệnh trước đó, nhưng được đặt trong tệp nodemon.json:

tệp nodemon.json:

Lưu ý sử dụng execMap thay vì công tắc -exec. execMap cho phép bạn định nghĩa các tập tin nhị phân cho các phần mở rộng tệp cụ thể.

Ngoài ra, nếu bạn không muốn thêm tệp nodemon.json cấu hình cho dự án của bạn, bạn có thể thêm các cấu hình này vào tệp package.json dưới một khóa nodemonConfig:

tệp package.json:

Sau khi bạn thay đổi tệp nodemon.json hoặc package.json, bạn có thể chạy nodemon với tùy chọn lệnh mong muốn:

Nodemon sẽ chọn và sử dụng các cấu hình này. Điều này cho phép lưu trữ, chia sẻ và lặp lại cấu hình của bạn mà không cần sao chép và dán hoặc nhập liệu trong dòng lệnh.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách sử dụng nodemon với ứng dụng Node.js của bạn. Công cụ này giúp tự động hóa quá trình khởi động lại máy chủ Node để theo dõi các thay đổi.

Để biết thêm thông tin về các tính năng và khắc phục sự cố, hãy tham khảo tài liệu chính thức.

Nếu bạn muốn tìm hiểu thêm về Node.js, hãy truy cập trang chủ Node.js của chúng tôi để tìm hiểu các hướng dẫn và dự án lập trình.

Back to top button