fjpublish简介

fjpublish是一款通过配置文件就能完成发布项目到各个环境的命令行工具,意在创建可靠舒适的发布项目体验,同时它也有丰富的API和完善的可拓展能力,让开发者轻松定制项目发布流程。

前言

曾几何时,我相信部分Web Developer使用的项目发布方式还活在刀耕火种的年代(使用xftp或者sublime text的插件sftp等),发布方式简单又粗暴,想发布哪个目录就直接上传覆盖...

但是这种方式对于现在的前端项目有些弊端,例如:

  • 若项目包含webpackgulp等构建工具,则每次发布都需要等待构建完成后再手动上传,效率低;
  • 若项目为前端的服务端渲染项目,例如vue的服务端渲染,那么项目上传服务器后还得登录服务器重启进程;
  • 发布时由于选错文件或者选错发布环境导致的上传(>﹏<)悲剧,可没有后悔药吃。

fjpublish能做什么

  • 通过配置文件配置每个要发布的环境,并通过简单的命令行命令选择发布的环境;
  • 自动化发布流程涵盖了git->构建->打包压缩->上传服务器->执行远程命令备份并替换旧文件;
  • 一次命令可发布一个或多个环境,可选择并行或串行发布;
  • 若为同时发布多个不同环境,fupublish能自动根据配置文件判断出哪些文件已构建,哪些文件已打包,哪些环境已上传等,自动忽略重复流程;
  • 自由组合发布的目录层级,可发布多个目录和忽略不需要发布的文件;
  • 通过中间件机制组成发布器,中间件之间独立无耦合,可灵活拆卸或新增中间件,完成简单的二次开发新的命令;
  • 可通过配置文件配置或者发布命令配置完成忽略某些当次发布不需要的流程,例如: 配置nobuild则不进行构建;
  • 可使用编程式的发布方式,不需要使用命令行也可以直接调用核心构建函数进行发布;
  • 可配置钩子函数灵活的控制在某个中间件前或后做些事情;
  • 可配置远程前置或后置linux处理命令,例如: 配置postCommands来在执行文件替换后重启pm2进程等;
  • 完备的提醒功能,若未配置或者配置错误某些重要或必要的配置则终止该发布流程并给出提示;

附上一张发布流程的gif图,感兴趣的朋友走过路过千万不要错过,详情请前往 文档地址

图片描述

反馈

fjpublish已在公司内部项目中稳定运行了大半年,如果你有什么好的idea,请在github上开issue或者去我的博客给我留言。

记得如果觉得不错请在右上角点个star哦∩__∩y


满满
57 声望1 粉丝