forever node.js - 监视目录中的文件更改
forever node.js - watch directory for file changes
如果在其目录或目录下检测到任何文件更改,我希望重新启动我的节点应用程序 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)
看来你需要 nodemon
npm install -g nodemon
但是在我的 windows 服务器中,我使用 https://github.com/tjanczuk/iisnode
有利于多核服务器的可扩展性
据我了解(关于此的文档是 non-existent 我所看到的)。 -w
或 --watch
函数会永远检查 .foreverignore
文件,如果缺少这个文件,程序基本上会失败并陷入循环,永远不会启动模块。
在您的应用程序目录中创建一个名为 .foreverignore
的文件并列出您不想永远观看的所有内容。这基本上告诉永远忽略对这些文件的更改,并且如果它们发生任何事情都不要重新启动,这对于日志文件或实际上不需要您的模块重新启动即可从中受益的东西非常有用。
下面是我的实施示例:
文件:
/apps/myapp/.foreverignore
内容
node_modules/*
logs/*
conf/*
htdocs/*
*.log
*.gif
*.jpg
*.html
创建后,请确保永远重新启动以获取文件。
正如@stuffyjoelab 所解释的那样 forever -w
检查 .foreverignore
文件,如果不存在就会卡住。
这是我将 forever
添加到节点服务器项目的简单方法。
创建.foreverignore
# we only care about changes to javascript files
# in the src folder
!src/*.js
npm i -D forever
添加 forever
作为开发依赖项
将此添加到 package.json 文件中的脚本
"dev": "forever -w --minUptime=1000 --spinSleepTime=1000 index.js",
npm run dev
永远开始。
更改文件,瞧——你的服务器重新启动
如果在其目录或目录下检测到任何文件更改,我希望重新启动我的节点应用程序 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)
看来你需要 nodemon
npm install -g nodemon
但是在我的 windows 服务器中,我使用 https://github.com/tjanczuk/iisnode
有利于多核服务器的可扩展性
据我了解(关于此的文档是 non-existent 我所看到的)。 -w
或 --watch
函数会永远检查 .foreverignore
文件,如果缺少这个文件,程序基本上会失败并陷入循环,永远不会启动模块。
在您的应用程序目录中创建一个名为 .foreverignore
的文件并列出您不想永远观看的所有内容。这基本上告诉永远忽略对这些文件的更改,并且如果它们发生任何事情都不要重新启动,这对于日志文件或实际上不需要您的模块重新启动即可从中受益的东西非常有用。
下面是我的实施示例:
文件:
/apps/myapp/.foreverignore
内容
node_modules/*
logs/*
conf/*
htdocs/*
*.log
*.gif
*.jpg
*.html
创建后,请确保永远重新启动以获取文件。
正如@stuffyjoelab 所解释的那样 forever -w
检查 .foreverignore
文件,如果不存在就会卡住。
这是我将 forever
添加到节点服务器项目的简单方法。
创建
.foreverignore
# we only care about changes to javascript files # in the src folder !src/*.js
npm i -D forever
添加forever
作为开发依赖项将此添加到 package.json 文件中的脚本
"dev": "forever -w --minUptime=1000 --spinSleepTime=1000 index.js",
npm run dev
永远开始。更改文件,瞧——你的服务器重新启动