23

我目前正在用 Express.js 编写 Node.js,每次更改文件路由器或应用程序中的一行代码时,都需要键入命令:

pm2 reload id_project.

更改文件时如何使 pm2 自动重新加载项目?

4

4 回答 4

111

您需要使用以下选项开始您的pm2项目:--watch

pm2 start <script|name|id> --watch

其中<script|name|id>指:

  • script要让 pm2 处理的脚本的路径
  • name“生态系统”文件中的配置名称
  • id指使用 pm2 已经在运行的应用程序,可以使用来获得pm2 list(请注意,这实际上需要 arestart而不是start,因此它可能是最不可取的选项)

您还可以指定要忽略的文件/目录:

pm2 start <script> --watch --ignore-watch "node_modules"

观看并重启

或者创建一个“生态系统”json 文件来描述你想pm2如何对待你的项目:

{
  "name": "project_name",
  "script": "index.js",
  "watch": true,
  "ignore_watch": ["node_modules"]
}

JSON 选项

于 2015-06-07T16:17:21.447 回答
6

PM2 带有一个方便的开发工具,允许您启动应用程序并在文件更改时重新启动它:

# Start your application in development mode
# it print the logs and restart on file change too

# Two way of running your application :
pm2-dev start my-app.js

# or

pm2-dev my-app.js
于 2018-07-10T11:48:27.103 回答
3

pm2 是一个有很多花里胡哨的 Node 进程管理器。当检测到目录中的文件更改时,您可以运行以下命令以自动重新启动节点应用程序。

pm2 start index.js --watch

请注意,因为 pm2 在后台运行,所以您不能只是ctrl+c退出正在运行的 pm2 进程。您必须通过传递 ID 或名称来阻止它。

pm2 stop 0
pm2 stop index

其他两个选项如下

npx supervisor index.js
nodemon index.js
于 2019-09-04T14:36:32.640 回答
0

默认情况下,pm2 不会在我们每次更改文件时自动刷新我们的服务器。您需要使用 --watch cli 参数启动 pm2 项目,以便在文件更改时告诉 pm2 刷新:

pm2 start id_project --watch

查看文档以获取更多详细信息,或查看更详细的@rogier-spieker 答案。

于 2015-04-21T08:33:26.863 回答