fjpublish能做什么
现有功能
通过配置文件配置每个要发布的环境,并通过简单的命令行命令选择发布的环境;
自动化发布流程涵盖了git->构建->打包压缩->上传服务器->执行远程命令备份并替换旧文件等操作;
一次命令可发布一个或多个环境,可选择并行或串行发布;
可以使用差异化(diff)的方式进行发布,每次自动计算出有改动的文件上传服务器;
可以通过命令快速还原已备份的文件,发版错误也能及时还原;
若为同时发布多个不同环境,fjpublish能自动根据配置文件判断出哪些文件已构建,哪些文件已打包,哪些环境已上传等,自动忽略重复流程;
自由组合发布的目录层级,可发布多个目录和忽略不需要发布的文件;
通过中间件机制组成发布器,中间件之间独立无耦合,可灵活拆卸或新增中间件,完成简单的二次开发新的命令;
可通过配置文件配置或者发布命令配置完成忽略某些当次发布不需要的流程,例如: 配置
nobuild
则不进行构建;可使用编程式的发布方式,不需要使用命令行也可以直接调用核心构建函数进行发布;
可配置钩子函数灵活的控制在某个中间件前或后做些事情;
可配置远程前置或后置linux处理命令,例如: 配置
postCommands
在远程服务器执行文件替换后重启pm2进程等;完备的提醒功能,若未配置或者配置错误某些重要或必要的配置则终止该发布流程并给出提示;
开发计划
- 把现有功能集成入编辑器(vscode)中;
更多功能
事实上,fjpublish是一个由核心实例加上各种中间件函数组成的,除此之外还能灵活地添加自定义钩子函数,所以更多的功能需要自己解锁。
反馈
fjpublish核心的功能都已经实现,并在公司内部项目中运行了大半年,也在计划着完成剩余的开发计划,如果你有什么好的idea,请在github上开issue或者去我的博客给我留言。
记得如果觉得不错请在右上角点个star哦∩__∩y