Статьи

Node.js быстрое развитие: Nodemon

node.js , безусловно, самая горячая вещь с нарезанного хлеба, и недавно я работал над большим проектом, который работает как сервер узлов.

Проблема, с которой я столкнулся, заключалась в том, что, в отличие от веб-приложения на основе PHP, всякий раз, когда я вносил какие-либо изменения в код, мне приходилось вручную останавливать и запускать узел. Это прослушало меня. Поэтому я создал nodemon, чтобы немного ускорить разработку.

Установка и использование

Вы можете установить nodemon с помощью npm (менеджер пакетов узлов) через:

npm install nodemon

Теперь nodemon будет доступен в командной строке и может запускать ваше приложение, как таковое:

nodemon server.js 8000

Где сервер . js — это мое приложение, а (в моем случае) 8000 — аргумент для моего приложения. Точно так же я мог бы запустить его с подключенным отладчиком:

nodemon --debug server.js 8000

Nodemon не будет скрывать вывод вашего приложения и не требует никаких изменений в вашем существующем приложении.

Что это делает?

Nodemon оборачивает ваше приложение узла и спокойно ищет изменения файлов в каталоге, из которого вы запускали nodemon. Это включает в себя любые подкаталоги тоже. Она использует команду unix find (поэтому она не доступна для пользователей Windows сейчас, извините), но это означает, что она довольно быстро собирает изменения.

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

Что делать, если я не хочу его перезапускать?

В nodemon есть возможность игнорировать шаблоны файлов (регулярные выражения поддерживаются благодаря @fearphage . Поэтому в моем приложении у меня есть общедоступный каталог, используемый Express . Узел не нужно перезапускать для этих статических файлов (изображений, CSS). , .less и т. д.) Таким образом, я могу сказать nodemon игнорировать что-либо в публичном каталоге.

nodemon создаст пустой nodemon не обращайте внимания на то, что вы можете добавить (и вот более полный пример ). Так что мой nodemon ignore будет выглядеть так:

# ignore the static directory
/public/*

Что мне действительно нравится в файле игнорирования, и который заставил моего разработчика работать довольно быстро, так это:

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

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

Что делать, если мое приложение выдает ошибку и ломается?

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

Ошибки, отзывы и т. Д.

Если у вас есть какие-либо предложения или обнаруженные ошибки, дайте мне знать об этой проблеме, и ее нужно быстро исправить (на самом деле это довольно простой сценарий).

Я уже использую его в одном из своих проектов, и он позволяет мне просто игнорировать shenanigans stop / start, пока я продолжаю свое кодирование, так что, по крайней мере, он уже кому-то помогает!