node.js项目离线部署 pm2开机自启

由 夕空 撰写于  2023年3月4日

以下方法都是windows平台。

主要遇到的困难是pm2开机自启问题。之前用的是pm2-windows-startup,安装简单,离线部署也不难,缺点是电脑开机必须到桌面时才会开机自启,这肯定不行,哪个服务器没有用户密码,每次重启都要登录才能启动,不完美。

后续一直在使用pm2-windows-service,虽然安装麻烦了些,不过可以不用进入桌面就开机启动了,但没有找到离线部署的方法。

两种方法总结了下教程:

http://www.flashme.cn/index.php/web/62.html

两种方法都不完美,我想要的是能脱离网络离线部署,开机自启也可以的方法,终于,
耗时两天总结的经验。。。

pm2-installer

使用方法官方github上有详细介绍,只需【npm run setup】等待一会pm2与开机自启直接完毕。

如果你没有离线部署需求,看到此处就可以了,下面开始介绍离线部署方法:

不过离线部署遇到了一些困难,一开始按照介绍的方法运行还是会报错,最终发现提前安装好pm2和pm2-logrotate才不会报错,但这有违背离线部署原则。

在网上找到的方法是,可以用

npm install pm2 --global-style


将pm2文件夹放到离线电脑全局node_modules目录,然后【npm build pm2 -g】......没用!无语,以前可以的啊!!
原来此方法到node v14后版本(npm v6之后的)被弃用!!npm的版本迭代真让人恼火!

当然你可以使用最新版本node配低版本npm v6或更早版本,但懒得折腾。

要不就回退至node v12,要不就使用最新的node,选择新方法

npm link

进入pm2目录执行此命令,以快捷方式的形式链接至全局包,此方法在较新版本npm支持。

纠结了下,还是选择使用新版node和npm

下面正式开始方法:

使用pm2-installer的文件,提前:npm run bundle,并在pm2-installer-main/node_modules文件夹里放置

pm2文件包、@jessety/pm2-logrotate、node-windows

三个npm包都是以下方法获得

npm install 包名 --global-style

下一步,拷贝至离线的电脑执行命令,我写了个bat文件,放置pm2-installer文件夹内,右键管理员身份运行即可:

@echo off
cd /D %~dp0
cd node_modules/pm2
call npm link
cd ../node-windows
call npm link
cd ../@jessety/pm2-logrotate
call npm link
pause

第二个执行:

@echo off
cd /D %~dp0
call npm run setup

为什么上面做2个批处理文件,发现放在一起执行安装的pm2只能运行在管理员身份里

如果你连看文章都很懒,下面的地址都给你打包好了,从最初安装nvm在到node和pm2,都在包里:

链接: https://pan.baidu.com/s/1_izMFx6eWewrdSlSPl_O-w?pwd=8yux

爬坑不易,在下面给个赞或赏吧~

声明:星耀夕空|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - node.js项目离线部署 pm2开机自启


欢迎光顾我的小站!