不知不觉,我们团队实践
AngularJS
已经一年多了, 一直使用grunt
来作为工作流,但它存在不少问题。最近在反复拜读 @fouber 的 「前端工程系列文章」, 发现神器 FIS,并希望借此机会,量身打造了一款Angular前端工具。
可惜FIS本身的文档还不够完善,内部实现有很多黑盒,于是本文作为踩坑实践后的总结,希望能对后来者有所帮助。
本文假定读者是有前端开发经验的工程师,对
angular
有一定的实践经验,且仔细阅读过「前端工程系列文章」。
FIS
是一个构建系统内核,很好的抽象了前端集成解决方案所需的通用工具需求。它补全了前端语言缺少的三种语言能力:
- **资源定位的能力:**使用开发路径进行资源定位,项目发布后转换成部署路径
- **依赖声明的能力:**声明一个资源依赖另一个资源的能力
- **资源嵌入的能力:**把一个资源的编译内容嵌入到另一个文件中
每个团队都有自己的应用场景,不能一刀切,所以我们需要量身定制。
FIS
本身并不与任何后端语言绑定。只有基于FIS实现的具体解决方案才会有具体的规范和技术选型。
因此FIS
是一个很好的起点,目前已有的定制方案:
解决方案 | 描述
------------ | ------------- | -------------
fis-plus | 适合百度的业务场景,后台为PHP
scrat | 适合UC大导航的业务场景,后台为NodeJS
spmx | 简单实现对seajs的场景
jello | Java + Velocity
ng-fis | 针对Angular
的场景,即本文实现的方案。
(而我们团队的项目则是基于ng-fis
之上进行再次封装)