Nodemon что это
Перейти к содержимому

Nodemon что это

  • автор:

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

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

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

nodemon — это утилита командной строки, разработанная @rem. Она заключает в оболочку ваше приложение Node, наблюдает за файловой системой и автоматически перезапускает процесс.

Из этой статьи вы узнаете об установке и настройке nodemon .

Предварительные требования

Если вы захотите следовать за этой статьей, вам потребуется следующее:

  • Локальная установка Node.js, выполненная согласно указаниям учебного модуля Установка Node.js и создание локальной среды разработки.

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

Вначале вам нужно будет установить nodemon на вашем компьютере. Установите утилиту в проекте глобально или локально, используя npm или Yarn:

Глобальная установка

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

Или с помощью Yarn:

Локальная установка

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

Или с помощью Yarn:

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

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

На этом процесс установки nodemon завершен. Далее мы будем использовать nodemon с нашими проектами.

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

Мы можем использовать nodemon для запуска скрипта Node. Например, если у нас имеется настройка сервера Express в файле server.js , мы можем запустить его и наблюдать за изменениями следующим образом:

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

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

Допустим мы записываем образец файла server.js , который выводит сообщение: Dolphin app listening on port $! .

Мы можем запустить пример с помощью nodemon :

Мы видим следующий вывод на терминале:

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!

Пока nodemon еще работает, внесем изменение в файл server.js для вывода сообщения: Shark app listening on port $! .

Мы увидим следующий дополнительный вывод на терминале:

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

Вывод приложения Node.js на терминале отображается, как и ожидалось. Вы можете перезапустить процесс в любое время, набрав rs и нажав ENTER .

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

package.json

 // . "main": "server.js", // . > 

Или скрипт start :

package.json

 // . "scripts":  "start": "node server.js" >, // . > 

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

Шаг 3 — Использование опций

Вы можете изменить параметры конфигурации, доступные 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 : более развернутый вывод с информацией о том, какие файлы изменились, для активации перезапуска.

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

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

  • наблюдение за каталогом server
  • указание файлов с расширением .ts
  • игнорирование файлов с суффиксом .test.ts
  • выполнение файла ( server/server.ts ) с ts-node
  • ожидание перезапуска в течение трех секунд после изменения файла

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

Шаг 4 — Использование конфигураций

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

Например, здесь приведены те же конфигурации, что и в предыдущем примере командной строки, но они содержатся в файле 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 :

package.json

 "name": "test-nodemon", "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 подбирает конфигурации и использует их. Это позволяет сохранять конфигурации, делиться ими и воспроизводить их, чтобы избежать ошибок при копировании и вставке или ошибок ввода в командной строке.

Заключение

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

Дополнительную информацию о доступных характеристиках и ошибках при диагностике и устранении неисправностей можно найти в официальной документации.

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Nodemon что это

В процессе разработки может потребоваться необходимость внести изменения в уже запущенный проект. Допустим, у нас в файле app.js определен следующий код:

const http = require("http"); let message = "Hello World!"; http.createServer(function(request,response)< console.log(message); response.end(message); >).listen(3000, "127.0.0.1",()=>< console.log("Сервер начал прослушивание запросов"); >);

Запустим сервер с помощью команды node app.js , и при обращении пользователя по адресу http://localhost:3000/ браузер пользователя отобразит строку «Hello World!». Одновременно строка выводится на консоль.

Nodemon в Node.js

При этом сервер продолжает быть запущенным. И если мы изменим переменную message в файле app.js, то это никак не повлияет на работу сервера, и он будет продолжать отдавать клиенту строку «Hello World!».

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

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

npm install nodemon -g

Флаг -g представляет сокращение от global и позволяет установить зависимость nodemon глобально для всех проектов на данной локальной машине.

После установки запустим файл app.js с помощью следующей команды:

nodemon app.js

И если вдруг после запуска сервера мы изменим его код, например, поменяем переменную message с «Hello World!» на «Привет мир!», то сервер автоматически будет перезапущен:

Nodemon что это

Ребят а как кошерно запускать девелопмент приложения, чтоб и вотчер был и брейкпоинты ставить можно…

1 min read

Nov 14, 2017

Nodemon нужен для удобства разработки, чтобы не перезапускать каждый раз приложение руками, а вот pm2 — это уже для продакшена, чтобы автоматически кластеризовать приложение и поднимать упавшие воркеры.

Written by Andrey Melikhov

Web-developer in big IT company Перевожу всё, до чего дотянусь. Иногда (но редко) пишу сам.

Nodemon для Windows

Nodemon

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

Для чего используется Nodemon?

Nodemon – это инструмент мониторинга для node.js и любые приложения на его основе. Он автоматически перезапускает приложение узла при обнаружении изменений в файле. Что хорошего в этом легком инструменте, так это то, что он на самом деле не требует никаких дополнительных изменений в вашем коде или даже в том, как вы работаете над своим кодом. Это связано с тем, что это всего лишь заменяющая оболочка для команды «node».

Чтобы использовать этот инструмент, вам необходимо установить его через npm. Затем загрузите терминал и запустите «npm install -g nodemon». Теперь он будет установлен глобально по системному пути. При желании вы также можете установить его как зависимость для разработки, запустив «npm install —save-dev nodemon». С другой стороны, если вы выполняете локальную установку, вам нужно запускать ее из скрипта npm.

Этот инструмент прост в запуске и позволяет выполнять сборку поверх чтобы настроить его поведение. Он может определить расширение файла по умолчанию, но также может игнорировать определенные файлы или каталоги. Он работает с серверными приложениями и даже одноразовыми утилитами и REPL. Кроме того, он может работать на всех платформах и предлагает все функции командной строки в виде API. Иногда аргументы CLI нелегко контролировать, но обширная онлайн-документация может вам в этом помочь.

Очень нужная утилита

В целом, Nodemon — очень удобный инструмент для программирования. Он прост в использовании, и любой метод его использования можно использовать, ознакомившись с обширным учебным пособием по инструменту. Однако это не идеальный инструмент, но его легко обойти с помощью его open-source исходный статус, любезно предоставленный его преданным сообществом. Эту программу настоятельно рекомендуется всем разработчикам, работающим с серверами и приложениями node.js.

  • Автоматический перезапуск вашего сервера или приложения
  • Может игнорировать определенные файлы
  • Мультиплатформенность
  • Легко запустить

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

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