Запуск Node.js скрипта в качестве сервиса Windows

283
22 июля 2017, 09:20

Имется некий Node.js скрипт prod.js, который запускает dev-сервер на определенном порту.

const { execSync } = require('child_process')
process.env.NODE_ENV = 'production'
const WEBPACK_PATH = 'node_modules/.bin/webpack'
const WEBPACK_CONFIG_PATH = 'internals/webpack/configs/prod'
execSync('yarn install --production=false')
execSync('rm -rf ./build')
execSync(`"${WEBPACK_PATH}" --config "${WEBPACK_CONFIG_PATH}"/webpack.prod.client.babel.js --display-error-details`)
execSync(`"${WEBPACK_PATH}" --config "${WEBPACK_CONFIG_PATH}"/webpack.prod.server.babel.js --display-error-details`)
execSync('node ./scripts/server/start-server.babel.js')

Есть ли возможность демонизировать его? Чтобы он делал следующее

  • стартовал при физическом рестарте машины (очень нужно)
  • реагировал на изменение файлов
  • прибивал процесс по указанному порту

Нашел пару модулей: pm2 и nodemon, однако, не вижу у них возможности автостарта при запуске системы.

Кроме того, попробовал nodemon, однако, команда

nodemon ./prod.js

Сваливается в постоянную перезагрузку, следовательно, процесс даже не может стартовать

[nodemon] restarting due to changes...
[nodemon] starting `node scripts/prod.js`
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] starting `node scripts/prod.js`
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] restarting due to changes...

Кто сталкивался с подобной задачей, подскажите, пожалуйста?

Answer 1

Можно воспользоватся node-windows, там есть возможность делать нативные windows сервисы.

READ ALSO
Как выбрать макс. значение для каждого типа из массива объектов?

Как выбрать макс. значение для каждого типа из массива объектов?

У меня есть массив объектовНужно выбрать для каждого type максимальный number

222
gulp. ошибка при компиляции sass

gulp. ошибка при компиляции sass

Доброго времени суток, форумчане

274
Для чего нужны классы в JavaScript?

Для чего нужны классы в JavaScript?

Читал статьи по созданию классов в JavaScript и задался вопрос: Зачем они? Для чего в ЕСМА Script 6 добавили классы? Может я не вижу того смысла и тех...

298