介绍
欢迎使用 Feflow,本文档将帮助您快速上手。如果您在使用过程中遇到问题,请在 GitHub 上反馈。
Feflow 是什么
Feflow (读音 /ˈfefləʊ/)是腾讯开源的用于提升工程效率的前端工作流和规范工具。托管在Github上:feflow。目前已经在NOW直播、花样直播、花样交友、手Q附近、群视频、群送礼、回音、应用宝、企鹅号等业务广泛使用。有80+ WEB/IOS/Andriod 稳定用户,累计投入生产项目达到240+。
Feflow 借鉴了 Pipline 的思想,将日常的研发工作划分为:初始化、本地开发、打包构建、检查、发布上线五个步骤。分别对应 init、dev、build、test和deploy五个基本命令。
除了服务好基本的开发工作流和规范,Feflow 提供了易于扩展的插件机制,用于打造团队统一的工具链生态。
概念
Feflow 只提供了一个CLI和内核,CLI 负责和命令行终端进行交互,内核则提供了更新机制、插件机制和标准化的日志输出能力,Feflow 自身并不会内置任何业务强相关的逻辑。
因此,如果你想在团队中使用 Feflow,你需要了解以下概念:
脚手架
在不少前端团队中,都存在项目开发不智能的问题。很多开发者开发新项目的时候都是基于原有项目拷贝的方式进行,这样就造成了一个团队中不同人开发的项目目录结构各不相同,后续项目交接和维护起来费时费力。
为了解决这个问题,Feflow 引入了社区主流的脚手架进行项目的初始化。Feflow 的脚手架基于 Yeoman, 在它基础上进行扩展,会将标准化的日志、CLI工具函数通过上下文对象传递给脚手架;同时提供脚手架的增量更新机制,创建项目时,当本地版本和远程版本不兼容时会提升增量更新。
引入了脚手架之后,一方面可以让团队保持统一的技术栈和统一目录结构;另一方面,还可以在项目初始化的时候做一些自动化的事情,比如自动创建远程Git仓库并且分配开发者 master/developer权限、申请监控Id、和内部的 CI/CD 系统快速打通等等一系列优势。
插件
除了提供基础的功能之外,Feflow里面还通过一套插件机制去方便的扩展子命令。你可以利用插件去做很多自动化的事情,比如批量压缩图片、搭建运营活动本地开发SDK、代码统计功能等等。
套件
Feflow 引入了套件这个概念,你可以把开发套件概念可以理解为类似 babel-presets
和 babel-plugin
的关系,babel-presets
是一系列 babel-plugin
的集合,开发套件其实也是由多个插件聚合而成; 套件用于提供某种类型的项目的命令,通常是提供多个命令的集合。Feflow的开发套件需要以 feflow-devkit-* 开头,开发套件开发完成需要发布到npm。通常由团队里面熟悉构建的同学进行统一的维护。