Cách tự động khởi động lại ứng dụng Node.js của bạn bằng nodemon
Trong Node.js, bạn cần khởi động lại quá trình để các thay đổi có hiệu lực. Điều này thêm một bước bổ sung vào quy trình làm việc của bạn để thay đổi diễn ra. Bạn có thể loại bỏ bước bổ sung này bằng cách sử dụngnodemon để khởi động lại quá trình tự động.   nodemon là một tiện ích giao diện dòng lệnh (CLI) được phát triển bởi @rem để bao bọc ứng dụng Node của bạn, xem hệ thống file  và tự động khởi động lại quá trình.
 Trong bài viết này, bạn sẽ tìm hiểu về cài đặt,  cài đặt  và cấu hình nodemon .
Yêu cầu
Nếu bạn muốn theo dõi bài viết này, bạn cần :
- Node.js được cài đặt local mà bạn có thể thực hiện theo Cách cài đặt Node.js và Tạo Môi trường Phát triển Cục bộ .
 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 . Cài đặt tiện ích  trên phạm vi global  hoặc local  trên dự án của bạn bằngnpm hoặc Yarn :
Cài đặt global
 Bạn có thể cài đặt nodemon  trên phạm vi global  với npm :
- npm install nodemon -g 
Hoặc với Sợi:
- yarn global add nodemon 
Cài đặt local
 Bạn cũng có thể cài đặt local  nodemon với npm. Khi thực hiện cài đặt local ,  ta  có thể cài đặt nodemon làmphụ thuộc nhà phát triển với --save-dev (hoặc --dev ):
- npm install nodemon --save-dev 
Hoặc với Sợi:
- yarn add nodemon --dev 
Một điều cần lưu ý với cài đặt local  là bạn sẽ không thể sử dụng lệnh nodemon trực tiếp từ dòng lệnh:
Output- command not found: nodemon 
Tuy nhiên, bạn có thể sử dụng nó như một phần của một số tập lệnh npm hoặc với npx .
  Đến đây là kết thúc việc cài đặt  nodemon . Tiếp theo,  ta  sẽ sử dụng nodemon với các dự án  của bạn .
 Bước 2 -  Cài đặt  một Dự án Express mẫu với nodemon
  Ta  có thể sử dụng nodemon đầu để bắt đầu một tập lệnh Node. Ví dụ: nếu  ta  có  cài đặt   server  Express trong file  server.js ,  ta  có thể khởi động nó và theo dõi các thay đổi như sau:
- nodemon server.js 
Bạn có thể truyền các đối số theo cách tương tự như khi bạn đang chạy tập lệnh với Node:
- nodemon server.js 3006 
Mỗi khi bạn thực hiện thay đổi đối với file  có một trong các phần mở rộng đã xem mặc định ( .js , .mjs , .json , .coffee hoặc .litcoffee ) trong folder  hiện tại hoặc folder  con, quá trình sẽ bắt đầu lại.
 Giả sử  ta  viết một file  server.js ví dụ xuất ra thông báo: Dolphin app listening on port ${port}! .
  Ta  có thể chạy ví dụ với nodemon :
- nodemon server.js 
Ta thấy kết quả terminal sau:
Output[nodemon] 1.17.3 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting  `node server.js` Dolphin app listening on port 3000! Trong khi nodemon vẫn đang chạy, hãy thực hiện thay đổi đối với file  server.js để xuất ra thông báo: Shark app listening on port ${port}! .
Ta thấy kết quả terminal bổ sung sau:
Output[nodemon] restarting due to changes... [nodemon] starting `node server.js` Shark app listening on port 3000! Đầu ra  terminal  từ ứng dụng Node.js của  ta  đang hiển thị như mong đợi. Bạn có thể khởi động lại quá trình bất kỳ lúc nào  bằng lệnh  rs và nhấn ENTER .
 Ngoài ra, nodemon cũng sẽ tìm kiếm file  main được chỉ định trong file  package.json của dự án của bạn:
{   // ...   "main": "server.js",   // ... } Hoặc, một kịch bản start :
{   // ...   "scripts": {     "start": "node server.js"   },   // ... } Sau khi  áp dụng các thay đổi  đối với package.json , bạn có thể gọi nodemon đầu để khởi động ứng dụng mẫu ở chế độ xem mà không cần phải chuyển vào server.js .
Bước 3 - Sử dụng Tùy chọn
 Bạn có thể sửa đổi cài đặt cấu hình có sẵn cho nodemon .
Hãy xem xét một số tùy chọn chính:
-  --exec: Sử dụng lựa chọn--execđể chỉ định một file binary để thực thi file . Ví dụ: khi được kết hợp với binaryts-node,--execcó thể trở nên hữu ích để theo dõi các thay đổi và chạy các file TypeScript.
-  --ext: Chỉ định các phần mở rộng file khác nhau để xem. Đối với lựa chọn này, hãy cung cấp danh sách các phần mở rộng file được phân tách bằng dấu phẩy (ví dụ:--ext js,ts).
-  --delay: Theo mặc định,nodemonchờ một giây để khởi động lại quá trình khi file thay đổi, nhưng với lựa chọn--delay, bạn có thể chỉ định thời gian trễ khác. Ví dụ:nodemon --delay 3.2cho độ trễ 3,2 giây.
-  --watch: Sử dụng lựa chọn--watchđể chỉ định nhiều folder hoặc file để xem. Thêm một--watchchuyển cho mỗi folder mà bạn muốn xem. Theo mặc định, folder hiện tại và các folder con của nó được theo dõi, vì vậy với--watchbạn có thể thu hẹp điều đó thành chỉ các folder con hoặc file cụ thể.
-  --ignore: Sử dụng lựa chọn--ignoređể bỏ qua các file , mẫu file hoặc folder nhất định.
-  --verbose: Một kết quả dài dòng hơn với thông tin về (các) file đã thay đổi để kích hoạt 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:
- nodemon --help 
Sử dụng các tùy chọn này, hãy tạo lệnh để đáp ứng tình huống sau:
-  xem folder  server
-  chỉ định các file  có đuôi .ts
-  bỏ qua các file  có hậu tố .test.ts
-  thực thi file  ( server/server.ts) bằngts-node
- đợi ba giây để khởi động lại sau khi file thay đổi
- nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts 
Lệnh này liên hợp gặt đập --watch , --ext , --exec , --ignore , và --delay tùy chọn để đáp ứng các điều kiện cho kịch bản của  ta .
Bước 4 - Sử dụng cấu hình
 Trong ví dụ trước, việc thêm  lựa chọn  cấu hình khi chạy nodemon có thể khá tẻ nhạt. Giải pháp tốt hơn cho các dự án cần các cấu hình cụ thể là chỉ định các cấu hình này trong một file  tin nodemon.json .
 Ví dụ: đây là các cấu hình giống như ví dụ dòng lệnh trước đó, nhưng được đặt trong file  nodemon.json :
{   "watch": ["server"],   "ext": "ts",   "ignore": ["*.test.ts"],   "delay": "3",   "execMap": {     "ts": "ts-node"   } } Lưu ý việc sử dụng bản đồ thực execMap thay vì chuyển đổi --exec . execMap cho phép bạn chỉ định các file  binary  sẽ được sử dụng với một số phần mở rộng file  nhất định.
 Ngoài ra, nếu bạn không muốn thêm file  cấu hình nodemon.json vào dự án  của bạn , bạn có thể thêm các cấu hình này vào file  package.json theo khóa nodemonConfig :
{   "name": "test-nodemon",   "version": "1.0.0",   "description": "",   "nodemonConfig": {     "watch": [       "server"     ],     "ext": "ts",     "ignore": [       "*.test.ts"     ],     "delay": "3",     "execMap": {       "ts": "ts-node"     }   },   // ... Sau khi bạn  áp dụng các thay đổi  đối với nodemon.json hoặc package.json , bạn có thể bắt đầu nodemon đầu với tập lệnh mong muốn:
- nodemon server/server.ts 
nodemon sẽ chọn các cấu hình và sử dụng chúng. Bằng cách này, cấu hình của bạn có thể được lưu, chia sẻ và lặp lại để tránh lỗi  copy paste  hoặc nhập trong dòng lệnh.
Kết luận
 Trong bài viết này, bạn đã khám phá cách sử dụng nodemon với các ứng dụng Node.js  của bạn . Công cụ này giúp tự động hóa quá trình dừng và khởi động  server  Node để xem các thay đổi.
Để biết thêm thông tin về các tính năng có sẵn và khắc phục lỗi, 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 xem trang chủ đề Node.js của ta để biết các bài tập và dự án lập trình.
Các tin liên quan
 

