Nodemon¶
В процессе разработки может потребоваться необходимость внести изменения в уже запущенный проект. Допустим, у нас в файле app.js определен следующий код:
1 2 3 4 5 6 7 8 9
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! . Одновременно строка выводится на консоль.
При этом сервер продолжает быть запущенным. И если мы изменим переменную message в файле app.js , то это никак не повлияет на работу сервера, и он будет продолжать отдавать клиенту строку Hello World! .
В этом случае необходимо перезапустить сервер. Однако это не очень удобно, особенно когда необходимо часто делать различные изменения, тестировать выполнение. И в этом случае нам может помочь специальный инструмент nodemon .
Установим nodemon в проект с помощью следующей команды:
npm install nodemon -g
Флаг -g представляет сокращение от global и позволяет установить зависимость nodemon глобально для всех проектов на данной локальной машине.
После установки запустим файл app.js с помощью следующей команды:
nodemon app.js
И если вдруг после запуска сервера мы изменим его код, например, поменяем переменную message с Hello World! на Привет мир! , то сервер автоматически будет перезапущен:
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!». Одновременно строка выводится на консоль.
c:\app> node app.js Сервер начал прием запросов по адресу http://localhost:3000 Hello World! Hello World!
При этом сервер продолжает быть запущенным. И если мы изменим переменную message в файле app.js, то это никак не повлияет на работу сервера, и он будет продолжать отдавать клиенту строку «Hello World!».
В этом случае необходимо перезапустить сервер. Однако это не очень удобно, особенно когда необходимо часто делать различные изменения, тестировать выполнение. И в этом случае нам может помочь специальный инструмент nodemon . Для его использования определим в папке проекта следующий файл package.json :
< "name": "helloapp", "version": "1.0.0", "scripts": < "start": "nodemon app.js" >, "dependencies": < "nodemon": "^3.0.1" >>
В секции scripts определена команда «start», которая в реальности будет запускать команду «nodemon app.js» и запускать файл через nodemon.
В секции dependencies указан пакет nodemon для установки.
Вначале перейдем в консоли к папке проекта и установим сам nodemon в проект с помощью команды npm install :
c:\app> npm install added 34 packages, and audited 35 packages in 3s 3 packages are looking for funding run `npm fund` for details found 0 vulnerabilities c:\app>
Затем запустим приложение с помощью команды npm start , которую мы определили выше в package.json:
c:\app> npm start > helloapp@1.0.0 start > nodemon app.js [nodemon] 3.0.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,cjs,json [nodemon] starting `node app.js` Сервер начал прием запросов по адресу http://localhost:3000
Итак, наше приложение запущено, мы можем обращаться к нему в барузере. И если вдруг после запуска сервера мы изменим его код, например, поменяем переменную message с «Hello World!» на «Goodbye World!», то сервер автоматически будет перезапущен:
c:\app> npm start > helloapp@1.0.0 start > nodemon app.js [nodemon] 3.0.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,cjs,json [nodemon] starting `node app.js` Сервер начал прием запросов по адресу http://localhost:3000 Hello World! Hello World! [nodemon] restarting due to changes. [nodemon] starting `node app.js` Сервер начал прием запросов по адресу http://localhost:3000 Goodbye World! Goodbye World!
Nodemon что это

Создание игр на Unreal Engine 5
Данный курс научит Вас созданию игр на Unreal Engine 5. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.
В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.
Помимо самого курса Вас ждёт ещё 8 бесплатных ценных Бонусов: «Chaos Destruction», «Разработка 2D-игры», «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства», «Создание прототипа RPG с открытым миром» и и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков.
Уроки и статьи
Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.
![]()
Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.
![]()
Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.
![]()
Мой аккаунт Моя группа
Какая тема Вас интересует больше?
Как автоматически перезапускать приложения 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.
