【问题标题】:How to automatically reload Node.js project when using pm2使用pm2时如何自动重新加载Node.js项目
【发布时间】:2015-06-28 06:58:15
【问题描述】:

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

pm2 reload id_project.

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

【问题讨论】:

  • pm2 是用于生产模式的工具。看看nodemon.io,它完全符合您的要求。

标签: javascript node.js express pm2


【解决方案1】:

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

pm2 start id_project --watch

查看the docs 了解更多详情,或查看@rogier-spieker 答案,了解更多详情。

【讨论】:

  • 好的,所以...我的 server.js 使用 `#!/usr/local/bin/nodemon" 但 pm2 似乎没有调用 nodemon
  • 对不起,@迈克尔。就像我说的,我实际上并没有使用pm2,所以我已经帮不上什么忙了。我只是说了我所说的话,因为它听起来会解决 OP 的问题。尝试查看此线程中的其他答案。也许他们可以帮助你。
  • 就个人而言,该线程中的其他答案似乎应该得到接受的答案。只要是接受的答案,我什至不能删除这个答案。
  • @Thatkookooguy 我不想投反对票,我认为 Mr.Dung 应该改变接受的答案......虽然我不希望他会改变,因为将近 6 年过去了
【解决方案2】:

您需要使用--watch 选项启动您的pm2 项目:

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

&lt;script|name|id&gt; 指的是:

  • script 要让 pm2 处理的 the script 的路径
  • name"ecosystem" file中的配置名称
  • id 指的是已经使用 pm2 运行的应用程序,可以使用 pm2 list 获得(请注意,这实际上需要 restart 而不是 start,因此它可能是最不可取的选项)

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

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

Watch & Restart

或创建一个“生态系统”json 文件,描述您希望pm2 如何对待您的项目:

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

JSON options

【讨论】:

  • 这里pm2 start id_project --watch的id_project是什么?
  • @testteam 我已经更新了答案以更新链接并提供更多清晰度
  • 这不是reload应用程序,它是restarts它
  • watch 会增加更多内存资源吗?
【解决方案3】:

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

# 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

【讨论】:

    【解决方案4】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 2012-09-22
      • 2021-06-24
      • 2016-10-20
      相关资源
      最近更新 更多