fjpublish是一款通过配置文件就能完成发布项目到各个环境的命令行工具,意在创建可靠舒适的发布项目体验,同时它也有丰富的 API 和完善的可拓展能力,让开发者轻松定制项目发布流程。
曾几何时,我相信部分 Web Developer 使用的项目发布方式还活在刀耕火种的年代(使用 xftp 或者 sublime text 的插件 sftp 等),发布方式简单又粗暴,想发布哪个目录就直接上传覆盖...
但是这种方式对于现在的前端项目有些弊端,例如:
若项目包含 webpack\gulp 等构建工具,则每次发布都需要等待构建完成后再手动上传,效率低;
若项目为前端的服务端渲染项目,例如 vue 的服务端渲染,那么项目上传服务器后还得登录服务器重启进程;
发布时由于选错文件或者选错发布环境导致的上传(>﹏<)悲剧,可没有后悔药吃。
通过配置文件配置每个要发布的环境,并通过简单的命令行命令选择发布的环境;
自动化发布流程涵盖了 git->构建->打包压缩->上传服务器->执行远程命令备份并替换旧文件;
一次命令可发布一个或多个环境,可选择并行或串行发布;
若为同时发布多个不同环境,fupublish 能自动根据配置文件判断出哪些文件已构建,哪些文件已打包,哪些环境已上传等,自动忽略重复流程;
自由组合发布的目录层级,可发布多个目录和忽略不需要发布的文件;
通过中间件机制组成发布器,中间件之间独立无耦合,可灵活拆卸或新增中间件,完成简单的二次开发新的命令;
可通过配置文件配置或者发布命令配置完成忽略某些当次发布不需要的流程,例如: 配置 nobuild 则不进行构建;
可使用编程式的发布方式,不需要使用命令行也可以直接调用核心构建函数进行发布;
可配置钩子函数灵活的控制在某个中间件前或后做些事情;
可配置远程前置或后置 linux 处理命令,例如: 配置 postCommands 来在执行文件替换后重启 pm2 进程等;
完备的提醒功能,若未配置或者配置错误某些重要或必要的配置则终止该发布流程并给出提示;
附上一张发布流程的 gif 图,感兴趣的朋友走过路过千万不要错过,详情请前往 文档地址
fjpublish 已在公司内部项目中稳定运行了大半年,如果你有什么好的 idea,请在 github 上开issue或者去我的博客给我留言。
记得如果觉得不错请在右上角点个 star 哦∩__∩y