Автоматический мониторинг файлов и перезапуск в Node.js: объяснение нескольких подходов

Команда «node –watch version» используется для отслеживания изменений в файле Node.js и автоматического перезапуска программы при обнаружении изменений. Это удобная функция во время разработки, поскольку она избавляет вас от необходимости вручную перезапускать сервер каждый раз, когда вы вносите изменения в код. Теперь давайте углубимся в различные методы, которые можно использовать для достижения того же результата.

Метод 1: использование Nodemon
Nodemon — это популярный инструмент, который автоматически перезапускает приложение Node.js при каждом изменении файла. Сначала вам необходимо установить Nodemon глобально, выполнив следующую команду:

npm install -g nodemon

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

nodemon file.js

Nodemon будет отслеживать изменения в файле и автоматически перезапускать его.

Метод 2: использование API файловой системы Node.js
Вы также можете создать собственный сценарий, используя API файловой системы Node.js, чтобы добиться того же результата. Вот пример фрагмента кода:

const fs = require('fs');
const { spawn } = require('child_process');
const filename = 'file.js';
fs.watch(filename, (eventType, _) => {
  if (eventType === 'change') {
    console.log('File changed. Restarting...');
    const node = spawn('node', [filename], { stdio: 'inherit' });
    node.on('close', () => {
      console.log('Restarting complete.');
    });
  }
});

В этом коде мы используем функцию fs.watchдля отслеживания изменений в файле. Всякий раз, когда происходит изменение, мы запускаем новый процесс Node.js с помощью модуля child_processи перезапускаем файл.

Метод 3: использование PM2
PM2 — это менеджер производственных процессов для приложений Node.js. Он также предоставляет функцию просмотра файлов. Во-первых, вам необходимо установить PM2 глобально:

npm install -g pm2

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

pm2 start file.js --watch

PM2 будет отслеживать изменения в файле и автоматически перезапускать приложение.

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