介绍

欢迎使用 Feflow,本文档将帮助您快速上手。如果您在使用过程中遇到问题,请在 GitHub 上反馈。

feflow

Feflow 是什么

Feflow (读音 /ˈfefləʊ/)是腾讯开源的用于提升工程效率的前端工作流和规范工具。最新版本是v0.15.1,托管在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 引入了构建器这个概念,它的基本思想是将构建脚本进行统一管理,由团队里面熟悉构建的同学进行统一的维护。构建器需要发布到 npm 上进行版本管理,同时建议每个项目采用相同的构建器。构建器通过 feflow 安装后会存放在 ~/.feflow/node_modules下,这样每个项目都可以共用一套构建脚本了。

插件

除了提供基础的功能之外,Feflow里面还通过一套插件机制去方便的扩展子命令。你可以利用插件去做很多自动化的事情,比如批量压缩图片、搭建运营活动本地开发SDK、代码统计功能等等。

贡献者