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, 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. 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 tệp 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ề , thiết lập và cấu hình nodemon.

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

Nếu bạn muốn theo dõi bài viết này, bạn sẽ 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

Trước tiên, bạn sẽ cần cài đặt nodemon trên máy của bạn. Cài đặt tiện ích trên toàn cầu hoặc cục bộ trên dự án của bạn bằng cách 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 với npm:

  • npm install nodemon –global

 

Hoặc với yarn:

Local Installation

You can also install nodemon tại địa phương. Khi thực hiện cài đặt cục bộ, bạn có thể cài đặt nodemon như một sự phụ thuộc của nhà phát triển với --save-dev (hoặc --dev).

Cài đặt nodemon địa phương với npm:

  • npm install nodemon –save-dev

 

Hoặc với yarn:

One thing to be aware of with a local install is that you will not be able to use the nodemon ra lệnh trực tiếp:

Output

  • command not found: nodemon

 

Bạn có thể thực thi gói được cài đặt cục bộ:

  • ./node_modules/nodemon/bin/nodemon.js [your node app]

 

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

Điều này kết luận nodemon quá trình cài đặt.

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

Bạn có thể dùng nodemon để bắt đầu một tập lệnh Node. Ví dụ: nếu bạn có thiết lập máy chủ Express trong server.js tập tin, bạn có thể bắt đầu nodemon và để ý những thay đổi như thế này:

You can pass in arguments the same way as if you were running the script with Node:

Every time you make a change to a file with one of the default watched extensions (.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.

Xem tiếp:   Lỗi Operation failed with error 0x0000011b là gì?

Hãy viết một ví dụ server.js tệp xuất ra thông báo: Dolphin app listening on port ${port}!.

server.js

const express = require('express')
const app = express()
const port = 3000

app.listen(port, ()=> .log(`Dolphin app listening on port ${port}!`))

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

The terminal output will display:

Output

[nodemon] 2.0.15 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,json [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 server.js tập tin. Thay đổi đầu ra một thông báo khác: Shark app listening on port ${port}!.

Kết quả đầu cuối sẽ hiển thị:

Output

[nodemon] restarting due to changes… [nodemon] starting `node server.js` Shark app listening on port 3000!

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

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

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

package.json

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

Nếu một main tệp không được chỉ định, nodemon sẽ tìm kiếm một start kịch bản:

package.json

{
  // ...
  "scripts": {
    "start": "node server.js"
  },
  // ...
}

Sau khi bạn thực hiện các thay đổi đối với package.json, sau đó bạn có thể gọi nodemon để khởi động ứng dụng mẫu ở chế độ xem mà không cần phải chuyển server.js.

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

Bạn có thể sửa đổi cài đặt cấu hình có sẵn để nodemon.

Hãy xem qua một số tùy chọn chính:

  • --exec: Sử dụng --exec chuyển sang chỉ định một tệp nhị phân để thực thi tệp. Ví dụ, khi kết hợp với ts-node nhị phân, --exec có thể trở nên hữu ích để theo dõi các thay đổi và chạy các tệp TypeScript.
  • --ext: Chỉ định các phần mở rộng tệp khác nhau để xem. Đối với công tắc này, hãy cung cấp 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: Theo mặc định, nodemon đợi một giây để khởi động lại quá trình khi tệp thay đổi, nhưng với --delay chuyển đổi, bạn có thể chỉ định một độ trễ khác. Ví dụ, nodemon --delay 3.2 trong thời gian trễ 3,2 giây.
  • --watch: Sử dụng --watch chuyển sang chỉ định nhiều thư mục hoặc tệp để xem. Cộng một --watch chuyển đổi cho từng thư mục bạn muốn xem. Theo mặc định, thư mục hiện tại và các thư mục 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 thư mục con hoặc tệp cụ thể.
  • --ignore: Sử dụng --ignore chuyển sang bỏ qua các tệp, mẫu tệp hoặc thư mục nhất định.
  • --verbose: Một đầu ra dài dòng hơn với thông tin về (các) tệp đã thay đổi để kích hoạt khởi động lại.
Xem tiếp:   3 Cách tạm dừng mã hóa BitLocker để thực hiện các thay đổi hệ thống trên Windows 10

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

Using these options, let's create the command to satisfy the following scenario:

  • watching the server danh mục
  • chỉ định các tệp với một .ts gia hạn
  • bỏ qua các tệp có .test.ts hậu tố
  • thực thi tệp (server/server.ts) với ts-node
  • đợi ba giây để khởi động lại sau khi tệp thay đổi
  • nodemon –watch server –ext ts –exec ts-node –ignore ‘*.test.ts' –delay 3 server/server.ts

 

Kết quả đầu cuối sẽ hiển thị:

Output

[nodemon] 2.0.15 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): server [nodemon] watching extensions: ts [nodemon] starting `ts-node server/server.ts`

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

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

Trong ví dụ trước, thêm công tắc cấu hình khi chạy nodemon có thể trở nên tẻ nhạt. Mộ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à xác định các tùy chọn này trong nodemon.json tập tin.

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 nodemon.json tập tin:

gật gù.json

{
  "watch": [
    "server"
  ],
  "ext": "ts",
  "ignore": [
    "*.test.ts"
  ],
  "delay": "3",
  "execMap": {
    "ts": "ts-node"
  }
}

Lưu ý việc sử dụng execMap thay cho --exec chuyển. execMap cho phép bạn chỉ định mã nhị phân cho các phần mở rộng tệp nhất định.

Ngoài ra, nếu bạn không muốn thêm một nodemon.json tệp 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 package.json tập tin dưới một nodemonConfig Chìa khóa:

Xem tiếp:   Cách sử dụng Terraform với nhóm của bạn

package.json

{
  "name": "nodemon-example",
  "version": "1.0.0",
  "description": "",
  "nodemonConfig": {
    "watch": [
      "server"
    ],
    "ext": "ts",
    "ignore": [
      "*.test.ts"
    ],
    "delay": "3",
    "execMap": {
      "ts": "ts-node"
    }
  },
  // ...

Sau khi bạn thực hiện các thay đổi đối với nodemon.json hoặc package.json, sau đó bạn có thể bắt đầu nodemon với tập lệnh mong muốn:

nodemon sẽ chọn các cấu hình và sử dụng chúng. Bằng cách này, các cấu hình của bạn có thể được lưu, chia sẻ và lặp lại để tránh lỗi sao chép và dán hoặc nhập trong dòng lệnh.

Phần 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 máy chủ Node để xem các thay đổi.

Để biết thêm thông tin về các 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 chúng tôi để biết các bài tập và dự án lập trình.

.

Check Also

Cách cung cấp các ứng dụng Flask với Gunicorn và Nginx trên Ubuntu

Giới thiệu Trong hướng dẫn này, bạn sẽ xây dựng một ứng dụng Python bằng …