forever node.js - 查看文件更改的目录

时间:2015-10-20 11:15:17

标签: javascript node.js forever

如果在其目录或下面检测到任何文件更改,我希望重新启动节点应用程序index.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)

3 个答案:

答案 0 :(得分:4)

根据我的理解(关于这个的文档不存在我所看到的)。 -w--watch函数永远检查.foreverignore文件,如果缺少该程序,程序基本上会失败并陷入永不启动模块的循环中。

在您的app目录中

创建一个名为.foreverignore的文件,并列出您不想永远观看的所有内容。这基本上告诉永远忽略对这些文件的更改而不是在它们发生任何事情时重新启动,这对于日志文件或实际上不需要重新启动模块以从中获益的事情非常有用。

以下是我实施的一个例子:

文件:

/apps/myapp/.foreverignore

内容

node_modules/*
logs/*
conf/*
htdocs/*
*.log
*.gif
*.jpg
*.html

创建后,请确保您永远重新启动以获取文件。

答案 1 :(得分:3)

好像你需要nodemon

npm install -g nodemon

然而,在我的Windows服务器中,我使用https://github.com/tjanczuk/iisnode有利于多核服务器的可扩展性

答案 2 :(得分:0)

正如@stuffyjoelab forever -w所解释的那样检查.foreverignore文件,如果不存在则会被卡住。

这是我将forever添加到节点服务器项目的简单方法。

  1. 创建.foreverignore

    # we only care about changes to javascript files
    # in the src folder
    !src/*.js
    
  2. npm i -D foreverforever添加为开发依赖

  3. 将此添加到package.json文件中的脚本

    "dev": "forever -w --minUptime=1000 --spinSleepTime=1000 index.js",
    
  4. npm run dev永远启动它。

  5. 更改文件并瞧 - 您的服务器重新启动