更改文件后重新启动节点

Gaj*_*jus 158 node.js

对于那些来自PHP背景的人来说,杀死节点并在每次代码更改后再次启动它的过程看起来非常繁琐.启动带有节点的脚本时是否有任何标志,以便在保存代码更改时自动重新启动节点?

alm*_*pal 156

一个很好的选择是Node-supervisorNode.js重启文件更改是关于如何使用它的好文章,通常:

 npm install supervisor -g
Run Code Online (Sandbox Code Playgroud)

迁移到应用程序的根目录后,使用以下命令

 supervisor app.js
Run Code Online (Sandbox Code Playgroud)

  • 不再维护节点主管。 (4认同)

Men*_*ual 92

你的朋友想要看一下名为nodemon的东西(https://github.com/remy/nodemon)

Nodemon将监视nodemon启动的目录中的文件,如果它们发生更改,它将自动重新启动节点应用程序.

例:

nodemon ./server.js localhost 8080
Run Code Online (Sandbox Code Playgroud)

或者干脆

nodemon server
Run Code Online (Sandbox Code Playgroud)

  • @dk49 因为在这种情况下,PHP 脚本为每个传入请求启动,并在它们生成页面后停止。 (2认同)
  • 不确定 Nodemon 至今仍如何保持(因为这是 2012 年的情况),但出于安全原因,我不确定每当文件更改时我是否希望我的服务器在 prod 上重新启动。像 pm2 这样的东西可能更适合生产环境。 (2认同)

hyd*_*yde 82

forever模块具有多个node.js服务器的概念,可以启动,重启,停止和列出当前运行的服务器.它还可以根据需要监视更改文件和重新启动节点.

如果您还没有安装它:

npm install forever -g
Run Code Online (Sandbox Code Playgroud)

安装后,调用forever命令:使用-w标志来监视文件的更改:

forever -w ./my-script.js
Run Code Online (Sandbox Code Playgroud)

此外,您还可以查看目录并忽略模式:

forever --watch --watchDirectory ./path/to/dir --watchIgnore *.log ./start/file
Run Code Online (Sandbox Code Playgroud)

  • Forever JS在Windows中有一个错误,当脚本终止时它不会终止Node进程.必须手动杀死节点进程:( http://stackoverflow.com/questions/14556852/how-to-stop-node-js-application-using-forever-module-on-windows (2认同)

Kay*_*Kay 33

各种NPM可以让生活更轻松.

对于发展

node-dev:npm install -g node-dev
nodemon:npm install -g nodemon
supervisor:npm install -g supervisor
forever:npm install -g forever

用于生产(具有集群,远程部署等扩展功能)

pm2:npm install -g pm2
强循环流程管理器:npm install -g strongloop

可以在StrongLoop的网站上找到Forever,pm2和StrongLoop之间的比较.

  • @ 2019 nodemon似乎仍然是四个开发选项中唯一的一个。 (3认同)
  • @mvermand 是的,除了nodemon 之外,最近它们中的任何一个都没有发布新版本。生产方面,PM2 仍保持良好。 (2认同)

Abh*_*waj 15

您也可以尝试nodemon

安装Nodemon

npm install -g nodemon
Run Code Online (Sandbox Code Playgroud)

使用Nodemon

通常我们启动节点程序,如:

node server.js
Run Code Online (Sandbox Code Playgroud)

但在这里你必须这样做:

nodemon server.js
Run Code Online (Sandbox Code Playgroud)


Adi*_*iii 8

节点开发

对于喜欢在服务器重新启动或文件中发生错误更改时希望在其桌面上获得通知(或libnotify)通知的开发人员,node-dev是nodemon和supervisor的绝佳替代方案.

安装:

npm install -g node-dev
Run Code Online (Sandbox Code Playgroud)

使用node-dev而不是node:

node-dev app.js
Run Code Online (Sandbox Code Playgroud)

更改文件的通知,以便服务器自动启动

在此输入图像描述

控制台输出

在此输入图像描述


mbe*_*sky 8

Nodejs 从v18.11.0开始支持观看模式。要运行它只需传递--watch参数:

node --watch ./index.js

注意:这是一个实验性功能。


小智 7

按照步骤:

  1. npm install --save-dev nodemon

  2. 将以下两行添加到 package.json 的“script”部分:

"start": "node ./bin/www",
"devstart": "nodemon ./bin/www"
Run Code Online (Sandbox Code Playgroud)

如下所示:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node ./bin/www",
    "devstart": "nodemon ./bin/www"
}
Run Code Online (Sandbox Code Playgroud)
  1. npm run devstart

https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/sculpture_website