2015-10-20 128 views
4

如果在其目錄或更低版本中檢測到任何文件更改,我希望我的節點應用程序index.js能夠重新啓動。另外,我希望進程處於前臺,將日誌輸出到終端。命令是什麼?forever node.js - 監視目錄中的文件更改

我嘗試:

forever stopall

forever -w /home/patrick/workspace/frontend-api/index.js

結果:

warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 
error: Could not read .foreverignore file. 
error: ENOENT, open '/.foreverignore' 
error: restarting script because unlinkDir changed 

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: watch EACCES 
    at errnoException (fs.js:1024:11) 
    at FSWatcher.start (fs.js:1056:11) 
    at Object.fs.watch (fs.js:1081:11) 
+0

你有配置好的'.foreverignore'文件嗎? –

+0

我沒有這樣的文件,它在運行之前沒有在官方文檔中提到... – Patrick

+0

也有類似的問題https://github.com/foreverjs/forever/issues/660,https:// github。 com/foreverjs/forever/issues/235,嘗試添加.foreverignore文件,並且可以提供有關它的反饋,我可以將其添加爲答案。 –

回答

3

好像u需要nodemon

npm install -g nodemon 

然而,在我的Windows服務器我用https://github.com/tjanczuk/iisnode良好的多核心服務器的可擴展性

+0

然後使用哪個命令? – Patrick

+0

哦sry我的壞,在這之後用nodemon替換節點,就像如果你之前使用'node app.js',現在使用'nodemon app.js'。 在此之後,只要你在任何文件中做任何改變,它就會重新啓動服務器,這對於開發環境很有好處。 PLZ接受或upvote,如果它有幫助 –

+0

沒問題使用nodemon工程。但我聽說永遠是更好的... – Patrick

1

從我的理解(關於這個文件是不存在的,我可以看到)。 -w--watch函數會永久檢查.foreverignore文件,如果缺少該文件,程序將基本上失敗並陷入循環,從不啓動模塊。

在您的應用程序目錄中創建一個名爲.foreverignore的文件,並列出您不想永遠觀看的所有內容。這基本上告訴永遠忽略對這些文件的更改,如果發生任何事情,不要重新啓動,這對於日誌文件或事實並非實際需要您的模塊重新啓動才能從中受益。

下面是從我的方面採取的例子:

文件:

/apps/myapp/.foreverignore 

內容

一旦創建
node_modules/* 
logs/* 
conf/* 
htdocs/* 
*.log 
*.gif 
*.jpg 
*.html 

確保你永遠重啓對於要拿起文件。

+0

這是正確的答案,應該被接受。 –