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 中配置项目内容