Node.js Live перезапускается с помощью Nodemon и Watch

Nodemon и Watch — это два инструмента Node.js, которые позволяют перезапускать ваше приложение в реальном времени. Узнайте, как использовать их для ускорения процесса разработки.

нодмон

nodemon — это сторонний модуль Node.js, разработанный гуру JavaScript Реми Шарпом. (Он говорит, что вы можете произносить это слово по своему усмотрению!)

Вы можете установить nodemon как глобальный модуль:

npm install -g nodemon

Затем замените node на nodemon в командах запуска разработки. Например, рассмотрим следующую команду:

node --inspect index.js arg1 arg2

Команда выше теперь будет выглядеть так:

nodemon --inspect index.js arg1 arg2

Ваше приложение запускается как обычно, но автоматически перезапускается при редактировании и сохранении исходного файла. Нет необходимости нажимать Ctrl | Cmd + C и запустите снова, хотя вы можете ввести rs и нажать Enter, чтобы принудительно перезапустить.

Примечание: nodemon — это серверное решение, которое не обновляет вкладки браузера, которые вы указали в своем приложении. Вы можете реализовать живую перезагрузку с помощью таких инструментов, как Browsersync или esbuild.< /а>

Для получения помощи по nodemon введите:

nodemon --help

Конфигурация узла

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

  • Раздел a "nodemonConfig" в файле package.json вашего проекта
  • локальный nodemon.json файл конфигурации в каталоге проекта и/или
  • глобальный nodemon.json файл конфигурации, используемый при запуске nodemon --config <file> из командной строки

Обычно используются следующие параметры/настройки.

смотреть

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

nodemon --watch lib1 config/*.json ./index.js

Или вы можете сделать это в файле конфигурации nodemon.json:

{
  "watch": [
    "lib1",
    "config/*.json"
  ]
}

игнорировать

Аналогичным образом вы можете игнорировать пути:

nodemon --ignore lib2 config/build.json ./index.js

Или вы можете сделать это в файле конфигурации nodemon.json:

{
  "ignore": [
    "lib2",
    "config/build.json"
  ]
}

доб.

Вы можете отслеживать отдельные файлы по их расширению. Например, вы можете отслеживать js, cjs, mjs, json и njk файлы шаблонов, например:

nodemon --ext "js,cjs,mjs,json,njk" ./index.js

Или вы можете сделать это в файле конфигурации nodemon.json:

{
  "ext": "js,cjs,mjs,json,njk"
}

наследиеЧасы

Наблюдение за файлами может дать сбой в некоторых средах, например, когда контейнеры Docker читают файлы с подключенного диска. При переключении в устаревший режим просмотра используется опрос, чтобы проверить, изменились ли файлы. Из командной строки:

nodemon --legacy-watch ./index.js

Или в файле конфигурации nodemon.json:

{
  "legacyWatch": true
}

задерживать

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

nodemon --delay 5 ./index.js

Или в файле конфигурации nodemon.json (обратите внимание, что здесь используются миллисекунды, а не секунды):

{
  "delay": 5000
}

подробный

Показывает подробные журналы вывода:

nodemon --verbose ./index.js

Или в файле конфигурации nodemon.json:

ОБЪЯВЛЕНИЕ

{
  "verbose": true
}

окружение

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

{
  "env": {
    "NODE_ENV": "development",
    "SERVER_PORT": 8000
  }
}

Другие исполняемые файлы

Наконец, вы можете запускать приложения, написанные на других языках, с помощью nodemon. Например, чтобы запустить сценарий perl, который перезапускается автоматически:

nodemon --exec "perl" ./app.pl

Вы также можете определить списки исполняемых файлов в файле конфигурации nodemon.json с их расширением:

{
  "execMap": {
    "pl": "perl"
  }
}

Расширенный нодмон

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

Node.js --watch Режим

nodemon остается предпочтительным инструментом, если у вас есть сложные требования к запуску приложения. Однако если вы используете Node.js 18.11 (выпущенный в конце 2022 г.) или новее, он предоставляет экспериментальную опцию --watch для перезапуска приложения без необходимости установки nodemon или любого другого стороннего модуля. Например, для команды запуска:

node --inspect index.js

Это становится:

node --inspect --watch index.js

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

#node  #nodejs 

Node.js Live перезапускается с помощью Nodemon и Watch
1.05 GEEK