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
,--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ằ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