
Абсолютно у всех разработчиков знакомство с nodejs начинается с того, что после каждого изменения нужно перезагружать сервер. Поэтому, в этом видео мы разберем, как сделать так, чтобы сервер перегружался автоматически.
Самый популярный вариант - это nodemon. То есть идея состоит в том, что в development окружении мы хотим, чтобы nodemon следил за файлами, которые мы меняем и просто перезапускал сервер, если эти файлы относятся к серверу.
У меня сейчас есть пустой проект с index.js, куда я установил nodemon.
В документации nodemon первой строчкой идет, что вы можете установить его глобально. Пожалуйста, не ставьте никогда пакеты глобально. Все нужные пакеты должны быть внутри, а не снаружи. Ни один разработчик не хочет склонировать проект, а потом сидеть и разбираться, а какие же внешние зависимости и каких версий ему требуются.
Поэтому устанавливаем nodemon внутри проекта
yard add nodemon
Теперь давайте в package json добавим команду для него.
"scripts": {
"dev": "nodemon"
}
Теперь в консоли давайте запустим его командой
yarn run nodemon
Как мы видим он запустился. Нам вывелось, что он вотчит все файлы в нашей папке и запускает команду node index.js при изменении любого файла.
Теперь, если мы изменим наш index.js, то nodemon перезапустит сервер.
console.log('nodemon?')
Но часто нам нужно указать для nodemon конфиг. И удобнее всего это сделать с помощью его конфиг файла. Для этого нужно создать nodemon.json в корне проекта.
Из часто используемых опций - это verbose: true, чтобы получать расширеный вывод. Например, какие директории игнорирует nodemon и какие файлы он вотчит.
Также мы можем задать папку, которую надо вотчить. Обычно, если у вас рендерится клиентсайд и серверсайд, логично сделать под них 2 папки. Тогда мы можем указать nodemon, что он должен следить за изменениями только в папке server. Для этого нам нужно в watch указать папку.
И, конечно, любой проект не обходится без переменных окружения. В конфиге nodemon можно также их указать. Давайте, например, попробуем указать PRIVATE_KEY и вывести его в index.js.
Если у вас возникли какие-то вопросы или комментарии, пишите их прямо под этим видео.