Forever + Nodemon běží společně

hlasů
40

Existuje nějaký způsob, jak mít obě tato sety běh dohromady?

Takže v podstatě chci mít to nejlepší z obou světů. Spuštěn server, automaticky (a restartování, pokud dojde k chybě), tak i automatické aktualizace v případě, že je změna JS soubor děje.

Položena 04/05/2013 v 00:33
zdroj uživatelem
V jiných jazycích...                            


8 odpovědí

hlasů
56

Měli byste spustit něco takového

forever start -c nodemon app.coffee
Odpovězeno 31/05/2013 v 14:33
zdroj uživatelem

hlasů
10

Nenašel jsem způsob, jak se dostat oba balíčky spuštěné společně. Snažil jsem se dělat @ technikou TOXA, ale když můj Node.js app došlo k výjimce nodemon by to automaticky restartuje, místo toho výstup chybového hlášení navždy log:

nodemon] app crashed - waiting for file changes before starting...

Nicméně, má navždy si -wvolbu a následující příkaz je v podstatě stejné, jako kdyby Běžím nodemon a navždy spolu:

forever start -w my-app.js

Nevýhodou forever -woproti nodemon: forevernemá --delay možnost, takže můj server dostane restartován jednou pro každý soubor, který se změnil.

Odpovězeno 19/10/2013 v 23:52
zdroj uživatelem

hlasů
42

Toxa byl na správné cestě, je otázka, která cfogelberg zvýšen je platný, ale zabránit tomu, aby problém, můžete provést následující:

forever -c "nodemon --exitcrash" app.js

Tím je zajištěno, nodemonskutečně ukončí (spíše než aby vás „app havaroval“ zpráva) a poté foreverznovu zvedne to.

V forever --helptéto -cspecifikuje příkaz ke spuštění jinak jeho výchozí uzel. Bez -c vede k chybě, která je zmíněna v komentářích k této odpovědi.

Odpovězeno 01/12/2013 v 00:34
zdroj uživatelem

hlasů
5

Dávám přednost combo co Toxa a Jubair navrhnout.

forever start -c nodemon app.coffee --exitcrash
Odpovězeno 14/01/2015 v 19:38
zdroj uživatelem

hlasů
1

Já používám věčně služby . , ,

To je to, co pracoval pro mě. To dělá následující: pokaždé je upraven soubor json nebo Raml ve složce aplikace dist / aktiva, počkejte 10 sekund a restartujte aplikaci uzlu (server.js skript):

$ forever-service install raml --script server.js -f " -c nodemon" -o " --delay 10 --watch dist/assets -e json,raml --exitcrash" -e "PATH=/usr/local/bin:$PATH"

Pak můžu běžet:

$ service raml start|stop|restart|status

I mohou mít také počátek služby na serveru restartu s nástroj chkconfig:

$ chkconfig --add raml
$ chkconfig raml on
Odpovězeno 15/04/2015 v 20:39
zdroj uživatelem

hlasů
2

Pokud potřebujete předat argumenty:

forever start -c "nodemon --harmony" app.js --exitcrash
Odpovězeno 28/04/2015 v 14:39
zdroj uživatelem

hlasů
11

Tam je záznam o tom v nodemonFAQ :

Pokud používáte nodemon se navždy (snad v produkčním prostředí), můžete kombinovat dvě dohromady. Tímto způsobem, pokud dojde k chybě skriptu, navždy restartuje skript, a pokud existují změny souborů, nodemon restartuje skript. Další podrobnosti viz otázka 30 .

K dosažení tohoto cíle je třeba přidat v návaznosti na volání forever:

  • Použijte navždy je -c nodemonmožnost říci navždy ke spuštění nodemonmísto node.
  • Patří nodemon --exitcrashvlajky zajistit nodemon východy při skript zhroucení (nebo neočekávaně ukončí).
  • Řekněte navždy použít SIGTERMnamísto SIGKILLpři žádosti nodemon zastavit. To zajišťuje, že nodemon může zastavit proces sledování uzlu čistě.
  • Volitelně přidejte --uidparametr, přidání jedinečný název vašeho procesu. V tomto příkladu je uid je nastavena na hodnotu foo.

bash forever start --uid foo --killSignal=SIGTERM -c nodemon --exitcrash server.js

Chcete-li to vyzkoušet, můžete zabít proces server.js a navždy jej restartovat. Pokud jste touch server.jsnodemon jej restartovat.

Chcete-li zastavit proces monitorován navždy a nodemon, stačí zavolat na následující pomocí uidjsme přiřadili výše ( foo):

bash forever stop foo

Tím se zastaví i nodemon a proces uzlu bylo sledování.

Všimněte si, že by to doporučujeme používat nodemon v produkčním prostředí - ale to je proto, že nechtěl bych to znovu bez mého výslovného pokynu.

Odpovězeno 26/05/2015 v 12:00
zdroj uživatelem

hlasů
0

Při použití v použití package.json apostrofy, aby nodemon --existcrash jako jediný argument. "start": "forever -c 'nodemon --exitcrash' server.js"

Výstup: app_1 | [nodemon] app crashed app_1 | error: Forever detected script exited with code: 1 app_1 | error: Script restart attempt #1 app_1 | [nodemon] 1.19.4 app_1 | [nodemon] to restart at any time, enterrs app_1 | [nodemon] watching dir(s): *.* app_1 | [nodemon] watching extensions: js,mjs,json app_1 | [nodemon] startingnode / app / server.js` app_1 | Aplikace běží na portu 3000

`

Odpovězeno 08/12/2019 v 09:15
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more