Остановить nodemon программно после запуска - PullRequest
0 голосов
/ 02 марта 2020

Я работаю над API, который работает в фоновом режиме, у нас есть несколько вспомогательных методов, которые необходимо запустить как таковые nodemon --exec babel-node commands/router.js для отображения всех маршрутов, например.

Обратите внимание, что node commands/router.js не может работать так, как нам нужно babel

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

Как я могу убить / остановить nodemon после запуска?

Код

пакет. json

{
  ...
  scripts: {
    "start": "nodemon --exec babel-node index.js",
    "router": "nodemon --exec babel-node commands/router.js"
  },
  ...
}

маршрутизатор. js

const script = () => {
  // Fetch and display routes
}

script()

Ответы [ 2 ]

1 голос
/ 02 марта 2020

РЕДАКТИРОВАТЬ:

Из документации Nodemon, правильный способ обработки этого варианта использования - вручную завершить процесс с помощью метода gracefulShutdown, например:

process.once('SIGUSR2', function () {
  gracefulShutdown(function () {
    process.kill(process.pid, 'SIGUSR2');
  });
});

Вы можете читать дальше здесь .

0 голосов
/ 04 марта 2020

Мы нашли решение, удалив nodemon и завершая вручную сценарии с помощью process.exit()

Конечный код

пакета. json

{
  ...
  scripts: {
    "start": "nodemon --exec babel-node index.js", // <= still called with nodemon
    "router": "babel-node commands/router.js"
  },
  ...
}

маршрутизатор. js

const script = () => {
  // Fetch and display routes

  process.exit()
}

script()
...