Как автоматически запускать приложения Node.js с помощью nodemon

0 Акции
0
0
0
0

Введение

В Node.js для вступления изменений в силу необходимо перезапустить процесс. Это добавляет один дополнительный шаг в рабочий процесс. Вы можете избежать этого, используя nodemon для автоматического перезапуска процесса.

nodemon — это инструмент командной строки (CLI), разработанный компанией rem, который упаковывает ваше Node-приложение, отслеживает файловую систему и автоматически перезапускает процесс. В этой статье вы узнаете, как установить, настроить и сконфигурировать nodemon.

Предпосылки
  • Node.js установлен

Шаг 1 — Установка nodemon

Сначала вам нужно установить nodemon на свой компьютер. Вы можете установить его глобально или локально в вашем проекте, используя нпм Или пряжа Установить.

Вы можете запустить nodemon глобально с помощью нпм Установить:

npm install nodemon --global

Или с пряжа:

yarn global add nodemon

Вы также можете установить nodemon локально. При локальной установке вы можете установить nodemon как зависимость разработчика с помощью параметра --save-dev (или --dev).

Установите Nodemon локально с помощью нпм Установить:

npm install nodemon --save-dev

Или с пряжа:

yarn add nodemon --dev

Важно отметить, что при локальной установке вы не сможете напрямую использовать команду nodemon:

Outputcommand not found: nodemon

Вы можете запустить локально установленный пакет:

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

Вы также можете использовать его в скриптах npm или с npx.

Шаг 2 — Настройка примера проекта Express с помощью nodemon

Вы можете использовать nodemon для запуска скрипта Node. Например, если у вас есть сервер Express в файле сервер.js Запуск, вы можете нодемон Запускаем и видим такие изменения:

nodemon server.js

Вы можете передавать аргументы так же, как если бы вы запустили скрипт с помощью Node:

nodemon server.js 3006

Процесс начинается заново каждый раз, когда вы вносите изменения в файл с одним из расширений по умолчанию (js, .mjs, .json, .coffee или .litcoffee) в текущем каталоге или подкаталоге.

Давайте напишем пример файла server.js, который отправляет сообщение: Приложение Dolphin прослушивает порт ${port}!.

const express = require('express')
const app = express()
const port = 3000
app.listen(port, ()=> console.log(`Dolphin app listening on port ${port}!`))

Запустите пример с помощью nodemon:

nodemon server.js

На выходе терминала отображается следующий вывод:

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!

Пока nodemon работает, внесем изменения в файл server.js. Изменим вывод на другое сообщение: «Приложение Shark прослушивает порт ${port}!».

На выходе терминала отображается следующий вывод:

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

Вывод терминала из приложения Node.js показывает новые изменения.

Вы можете печатать в любое время рс и ударяя ВХОДИТЬПерезапустите процесс.

С другой стороны, nodemon также будет искать основной файл, указанный в файле package.json вашего проекта:

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

Если основной файл не указан, nodemon ищет скрипт запуска:

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

После внесения изменений в package.json вы можете вызвать nodemon для запуска примера приложения в режиме наблюдения без необходимости использования server.js.

Шаг 3 – параметры nodemon

Вы можете изменить существующие параметры конфигурации nodemon.

Давайте рассмотрим некоторые основные варианты:

  • –exec: Используйте ключ –exec, чтобы указать исполняемый файл. Например, в сочетании с исполняемым файлом ts-node ключ –exec может быть полезен для отслеживания изменений и выполнения файлов TypeScript.
  • –ext: Укажите различные расширения файлов для отслеживания. Для этого параметра укажите список расширений файлов, разделённых запятыми (например, –ext js,ts).
  • –delay: По умолчанию nodemon ждёт одну секунду перед перезапуском процесса при изменении файла, но с помощью параметра –delay можно указать другую задержку. Например, nodemon –delay 3.2 для задержки 3,2 секунды.
  • –watch: Используйте параметр –watch, чтобы указать несколько каталогов или файлов для отслеживания. Добавьте параметр –watch для каждого каталога, за которым нужно следить. По умолчанию отслеживается текущий каталог и его подкаталоги, поэтому с помощью параметра -watch можно ограничить наблюдение определёнными подкаталогами или файлами.
  • –ignore: Используйте параметр –ignore, чтобы игнорировать определенные файлы, шаблоны файлов или каталоги.
  • –verbose: Более подробный вывод с информацией о том, какие файлы были изменены для перезапуска запуска.

Просмотреть все доступные параметры можно с помощью следующей команды:

nodemon --help

Используя эти параметры, давайте создадим команду для реализации следующего сценария:

  • Просмотр каталога сервера
  • Укажите файлы с расширением .ts
  • Игнорировать файлы с расширением .test.ts
  • Запуск файла (server/server.ts) с помощью ts-node
  • Подождите три секунды, чтобы перезагрузиться после изменения файла.
nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts

На выходе терминала отображается следующий вывод:

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`

Эта команда объединяет параметры –watch, –ext, –exec, –ignore и –delay для удовлетворения требований нашего сценария.

Шаг 4 — Настройка nodemon

В предыдущем примере добавление параметров конфигурации при запуске nodemon может быть утомительным. Для проектов, требующих сложной настройки, лучшим решением будет определить эти параметры в файле nodemon.json.

Например, вот те же конфигурации, что и в предыдущем примере командной строки, но помещенные в файл nodemon.json:

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

Обратите внимание на использование execMap вместо ключа –exec. execMap позволяет указывать двоичные файлы для определенных расширений файлов.

Кроме того, если вы предпочитаете не добавлять файл конфигурации nodemon.json в свой проект, вы можете добавить следующие настройки в файл package.json в ключ nodemonConfig:

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

После внесения изменений в nodemon.json или package.json вы можете запустить nodemon с нужным скриптом:

nodemon server/server.ts

nodemon подхватывает настройки и использует их. Таким образом, ваши настройки можно сохранять, распространять и реплицировать, избегая ошибок копирования и ввода в командной строке.

Результат

В этой статье вы узнали, как использовать nodemon с приложениями Node.js. Этот инструмент помогает автоматизировать процесс остановки и запуска Node-сервера для просмотра изменений.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться

Как установить IBSng на CentOS 6/7

Руководство по установке IBSng на CentOS 6/7 В этой статье приведено руководство по установке IBSng на CentOS 6/7, которое поможет вам…

Как войти на сервер Windows через удаленный рабочий стол

Как подключиться к серверу Windows через удалённый рабочий стол. Программное обеспечение для подключения к удалённому рабочему столу предоставляется бесплатно во всех версиях…