以下方法都是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
爬坑不易,在下面给个赞或赏吧~
Comments | NOTHING