Sto sviluppando un modulo in Node.js che ho collegato a npm in un'altra cartella node_modules di progetti. Vorrei riavviare questo altro server di progetto in caso di modifiche al file nel mio modulo. Nodemon ignora node_modules per impostazione predefinita, ma ho assunto che potrei ignorarlo utilizzando nodemon --watch node_modules/my_module - ma non riesco a farlo funzionare. Se tolgo temporaneamente node_modules da Nodemons lib/config/defaults.js, questo funziona, il che probabilmente conferma che il problema ha a che fare con l'override del comportamento predefinito.Come si monitorano i moduli symlinked con Nodemon?
risposta
Utilizzando nodemon
1.2.1, sono in grado di eseguire le seguenti operazioni per ottenere orologi di lavoro con un collegamento NPM:
$ nodemon --watch . --watch $(realpath node_modules/my_module)
In pratica ... si deve guardare la directory si è in (il vostro directory del progetto), quindi specificare un orologio per il collegamento simbolico stesso. nodemon
per impostazione predefinita ignora node_modules
, in modo esplicito specificando che l'orologio lo corregge. Puoi provare ad aggiornare la tua versione di nodemon
se questo non funziona per te.
Questo non sembra funzionare più, vedere [questo problema] (https://github.com/remy/nodemon/issues/794); – Tamlyn
@Tamlyn Hey - sentiti libero di modificare la mia risposta per includere una nuova correzione, se esistente. Se è una buona risposta, posso rendere questo wiki della comunità e lasciarlo aperto per le modifiche. –
Questo ha funzionato per me subito dopo aver eseguito 'brew install coreutils' (macOS). Altrimenti il comando 'realpath' non è stato trovato. È una buona idea lanciare 'realpath node_modules/my_module' separatamente per assicurarsi che restituisca qualcosa di significativo e solo dopo chiamiamo' nodemon ... '. –
Correre dentro a me stesso. Ho pensato di usare forever.js, ma sembra che quella libreria non supporti effettivamente l'invio di output di log a stdout (che a mio parere è un dealbreaker). –
... aaaand ho trovato la soluzione. Suppongo che avrei dovuto provarlo prima. –