2015-10-20 129 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

这是正确的答案,应该被接受。 –