Thứ sáu, 07/08/2020 | 00:00 GMT+7

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ụng nodemon để 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 :

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:

package.json
{   // ...   "main": "server.js",   // ... } 

Hoặc, một kịch bản start :

package.json
{   // ...   "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 binary ts-node , --exec có 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, nodemon chờ 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.2 cho độ 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 --watch chuyể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 --watch bạ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ằng ts-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 :

gật gù.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 :

package.json
{   "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.


Tags:

Các tin liên quan