PM2热更新NUXT3-node-server项目

486 阅读1分钟

PM2热更新NUXT3-node-server项目

问题发现经历

本博客项目是纯nuxt3项目,利用nuxt-server写了部分关于文章的接口,该项目利用PM2部署,利用PM2的热重启功能管理。

部署该项目时,我是利用github-action将build后的.output目录搬到服务器下,用PM2管理,并没有在本地测试过这种可行性(理所当然了这不是😅)

后面进行项目更新后,代码推送并且deploy到服务器上后发现项目并没有重启。

测试正确的历程

后面经过本次测试后发现,无论是--watch还是ecosystem.config配置watch都不生效,监听不到.output文件夹里面的函数,在.output文件下和server文件下启动都无效(我还是不太懂,菜)。


但是可以将听到.output文件夹外的项目文件 所以有了解决办法

根本原因是pm2运行文件目录和文件更改机制

初步解决办法

将编译后的项目包含原始文件一起deploy到服务器上,这样就可以正常进行热更新了。

但是如果不做watch配置的话,可能会有多次重启的情况

正确解决办法

重点是要厘清PM2启动的项目的运行环境目录,最好使用配置文件配置项目的相关内容

将.output/ 和ecosystem.config.js deploy到服务器上(热更新有效),在ecosystem.config.js 中配置项目内容