终于开始真正的接触到服务端的一些东西,用自己学到的去解决一些问题了~
由于前端大部分项目都是基于 node
技术栈的,所以本文介绍通过 PM2
作为 Node
项目的自动化部署与管理。
准备
首先 全局安装 npm install pm2 -g
因为 pm2
需求配置服务器免密登陆 ssh-copy-id username@ip-address
项目
做好了配置之后可以考虑下如何去解决剩下的问题了,首先 PM2
作为一款自动化发布的工具使用起来很方便,只需要安装后在项目中配置 ecosystem
的配置文件即可。
那么其实这个配置文件很多时候我们是不需要过多的关注的,即在很多的项目中只需要对一些关键配置信息进行配置即可。那么做成一个 npm
的工具岂不是更方便啦。
首先在入口文件处进行初始化询问用户对项目关键信息的配置,并保存成配置文件:
1 | ... |
获取到了用户设置的配置信息之后便可以在项目的根目录中生成一个 ecosystem
的配置文件了。
之后还需要生成一个 webhook.js
的文件用于接受 git
仓库发出的钩子用来及时的做自动化发布
1 | ... |
使用
future: npm install gt-auto-release
future: node ./node_modules/gt-auto-release/index.js
根据提示在项目根目录中产生了 scosystem.json
之后
在项目根目录下执行 pm2 startOrRestart ecosystem.json --env production setup
发布
可以在git仓库下设置 webhook
触发的模式(commit / tag), 之后git仓库的提交便会自动化发布。
其实很简单就做成了一个自动化发布的工具,不过是把每个项目中都需要做的生成配置文件做成了工具生成,之后在单独启动一个 node
的进程去监听 webhook
即可。
期待能在工作中有更多的挑战,能越来越自然的去工程化的解决项目中重复劳动的问题~
也在日常的开发中不断的沉淀出自己的经验和成长。