2016-10-07 17 views
2

В моем package.json У меня есть сценарий запуска, который я использую для моего окружения. Это выглядит следующим образом:Nodemon + babel перезагружает сервер несколько раз

"scripts": { 
    "dev": "NODE_PATH=src nodemon --watch src/ --exec babel-node src/app.js" 
} 

Когда я удар npm run dev все работает отлично и Вавилонская transpiling все, как должно и nodemon начинает смотреть. Я вижу следующее:

[nodemon] 1.11.0 
[nodemon] to restart at any time, enter `rs` 
[nodemon] watching: /Users/Jonathan/Documents/swissnet/src/**/* 
[nodemon] starting `babel-node src/app.js` 

Когда я сохраняю файлы в src/-folder, nodemon перезапустит сервер. Но вот мой вопрос, он перезагружается 2-3 раза ... Everytime I сохранить файл, он выглядит следующим образом:

[nodemon] restarting due to changes... 
[nodemon] starting `babel-node src/app.js` 
[nodemon] restarting due to changes... 
[nodemon] starting `babel-node src/app.js` 
[nodemon] restarting due to changes... 
[nodemon] starting `babel-node src/app.js` 

Если я вхожу «RS», то nodemon перезагружается, один раз, как и ожидалось.

Я понятия не имею, как это решить или даже где искать ответы. Я попытался это сделать. Я посетил раздел с ошибкой пакета на github ... (Может быть, я просто сосать в googling).
Вот единственная ссылка, которую я нашел для той же проблемы, но у нее нет ответа: Nodemon runs multiple times on save when using babel.
Я пробовал свой сценарий в любом случае NODE_PATH=src nodemon src --exec babel -w src/ --out-dir build/ --source-maps, но то же самое произошло, перезапуск дважды или трижды.

Как @Connorelsea сказал в разделе комментариев ответа, приведенного в ссылке выше, если я добавлю --delay 2.5, он перезапускается только один раз.

Я думаю, может быть, когда я нажму на сохранение в наблюдаемом файле, nodemon перезапустится мгновенно, и babel начнет транслировать. Когда babel выполняется, он сохраняет скомпилированные файлы и перезаписывает nodemon, так как были сделаны изменения в src/-folder. Но я не знаю, как отладить это.

Надеюсь, вы, ребята, можете мне помочь!

**** EDIT ****

Просто нашел https://github.com/remy/nodemon/issues/508 но единственные решения, которые они имеют, чтобы "обновить nodemon". В настоящее время у меня есть последнее, что составляет 1.11.0.

+1

У меня та же проблема, на nodemon 1.11.0 БЕЗ Бабеля. –

ответ

7

Итак, через пару месяцев я понял, что случилось. Кажется, что сервер просто перезагружается один раз, когда я сохраняю, а еще раз, когда babel преобразует код через пару секунд после обновления файлов. Так что это был пакет babel-node, который давал мне это нежелательное поведение. Он работает с nodemon задержкой в ​​2 секунды --delay 2 или больше.

+2

спасибо за возвращение, чтобы объяснить ... – swyx

1

Вы должны использовать babel-node в качестве исполнителя, как это:

nodemon ./index.js --exec babel-node