FIS —— 百度开源的前端集成解决方案

简介: FIS是百度开源的前端集成解决方案,这是团队和百度众多产品线共同探索出一套前端集成解决方案。解决了前端生成中前端静态资源加载优化、页面运行性能优化、基础编译工具、运行环境模拟、js|css组件化开发等心问题。

FIS是百度开源的前端集成解决方案,这是团队和百度众多产品线共同探索出一套前端集成解决方案。解决了前端生成中前端静态资源加载优化、页面运行性能优化、基础编译工具、运行环境模拟、js|css组件化开发等心问题。

image.png


F.I.S简介

首先让我们来看一个真正的前端团队要开发一个产品时所需要经历的过程:

  • 第一阶段:规范与设计
  • 定制必要的开发规范
  • 定制项目的组件化拆分方案
  • 第二阶段:技术选型
  • 选择前端组件化框架(seajs, requirejs, ...)
  • 选择前端基础库(jquery, tangram, ...)
  • 选择模板语言(php, smarty, ...)
  • 选择模板插件(xss修复)
  • 第三阶段:自动化与拆分
  • 选择或开发自动化工具(打包,压缩,校验)
  • 将系统拆分为几个子系统,以便大团队并行开发
  • 适当调整框架以适应工具产出
  • 第四阶段:性能优化
  • 小心剔除已下线的功能
  • 优化http请求
  • 适当调整自动化工具以适应性能优化
  • 使用架构级优化方案:BigPipe、BigRender等


以上阶段,是所有大型应用前端团队都会经历的阶段,我们将 其中的技术需求总结为前端集成解决方案


通常,一套完整的前端技术解决方案包括四个方向:

  • 前端框架:提供组件加载及管理框架支持,提供前端基础库及组件库。
  • 模板框架:提供组件化开发模式支持;配合前端框架收集页面所需要的最小静态资源需求;留有充分的性能优化空间,性能优化对工程师透明。
  • 自动化工具:提供基本优化能力;为前端框架、模板框架提供辅助支持。
  • 辅助开发工具:提升工程师的开发体验,降低调试、部署成本。


so,如果你的团队已经拥有以上四项技术基础,那么恭喜你,你已拥有了一套fis。

这样的过程每天都在前端界上演,那么,有没有办法让这个过程简化,让前端团队可以快速进入角色,而且不用担心未来的自动化、性能优化等问题呢? 答案是肯定的!


F.I.S@百度

2011年底,百度web前端研发部成立F.I.S团队,汇集了来自各产品线的精英工程师,该团队的任务是寻找提升前端工业生产力水平的解决方案。经过1.5561643836年的努力,fis团队和百度众多产品线共同探索出一套前端集成解决方案,解决了前端生成中遇到的诸多问题,包括但不限于 前端静态资源加载优化、页面运行性能优化、基础编译工具、运行环境模拟、js|css组件化开发 等前端领域核心问题。如今,fis团队的解决方案已应用到百度30多个产品线,覆盖了从pc到无线终端的应用,极大的提升了前端团队的生产力,降低了开发成本。


2013年初,fis团队总结了之前在前端集成解决方案领域所做的探索,将整套方案整理开源,希望能为前端工业化提供新的思路。


功能概述

  • 跨平台支持win、mac、linux等系统
  • 无内置规范,可配置 开发和部署规范,用于满足任何前后端框架的部署需求
  • 对html、js、css实现 三种语言能力 扩展,解决绝大多数前端构建问题
  • 支持二次包装,比如 spmxphizchassis,对fis进行包装后可内置新的插件、配置,从而打造属于你们团队的自己的开发工具
  • 自动生成静态资源表关系表(map.json),可用于 连接前后端开发框架
  • 所有静态资源自动加 md5版本戳,服务端可放心开启永久强缓存
  • 支持给所有静态资源添加域名前缀
  • 可灵活扩展的插件系统,支持对构建过程和命令功能进行扩展,现已发布N多 插件
  • 通过插件配置可以在一个项目中无缝使用 lesscoffeemarkdownjade等语言开发
  • 内置 css sprites插件,简单易用
  • 内置 png图片压缩插件,采用c++编写的node扩展,具有极高的性能,支持 将png24压缩为png8
  • 内置本地开发调试服务器,支持完美运行 javajspphp 等服务端语言
  • 支持文件监听,保存即发布
  • 支持浏览器自动刷新,可同时刷新多个终端中的页面,配合文件监听功能可实现保存即刷新
  • 支持上传到远端服务器,配合文件监听,浏览器自动刷新功能,可实现保存即增量编译上传,上传后即刷新的开发体验
  • 超低学习成本,只须记忆 2 条命令即可完成开发
  • 抹平编码差异,开发中无论是gbk、gb2312、utf8、utf8-bom等编码的文件,输出时都能统一指定为utf8无bom(默认)或者gbk文件


快速上手

  • npm install -g fis
  • 三条命令,满足你的所有开发需求:
  • 试手样例


三种语言能力扩展


插件系统


配置文档

  • 插件配置
  • 内置插件运行配置
  • 目录规范与域名配置
  • 部署配置
  • 打包配置


高级使用


更多资料

  • fistool 可视化界面工具
  • gois go语言组件化解决方案
  • phiz PHP组件化解决方案
  • spmx 通过包装fis得到适应seajs架构的集成解决方案
  • sublime plugin 支持FIS编译的sublime插件,可以替代watch功能
相关文章
|
JSON 前端开发 JavaScript
惊艳!阿里开源 15.2k Star 企业级低代码引擎揭秘,如何变革前端开发方式?
阿里巴巴开源的 LowCodeEngine 是一款企业级低代码引擎,具备可视化编排、UI 渲染、代码生成等全链路能力。支持 React、Vue、Rax 等框架,提供高扩展性与类型安全,助力高效开发,降低维护成本,适用于后台系统、多端同步等场景。
1727 1
|
11月前
|
JSON 监控 前端开发
AMIS:百度开源的前端低代码神器,18.4k star 背后的开发效率提升利器
AMIS(前端低代码框架)是百度开源的低代码前端框架,基于纯 JSON 配置即可生成完整后台页面,包括表单、表格、图表、CRUD 列表,支持可视化拖拽编辑。,星标数已达 18.4k,百度内部已沉淀超过 5 万个页面,广泛应用于审核系统、数据管理后台、模型监控等落地场景
1794 0
|
人工智能 自然语言处理 前端开发
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
DeepSite是基于DeepSeek-V3模型的在线开发工具,无需配置环境即可通过自然语言描述快速生成游戏、网页和应用代码,并支持实时预览效果,显著降低开发门槛。
2081 93
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
|
12月前
|
Web App开发 前端开发 关系型数据库
GitHub 2.8k star 开源既封神,“Liquid‑Glass‑React”,让你前端界面瞬间拥有苹果级液态玻璃效果!
Liquid-Glass-React 是一款开源前端组件,旨在将 Apple iOS 26 的“液态玻璃”视觉效果引入 React 应用。凭借逼真折射、多种反射模式、响应式交互及高度可配置性,它已获得 2.8k stars,成为提升 UI 质感的热门工具。
1377 0
|
人工智能 前端开发 数据可视化
天都塌了,17K+ Star 的AI开源神器!Onlook 如何颠覆前端开发与设计协作?怎么办
Onlook是一款开源的视觉优先代码编辑器,结合Figma直观操作与VS Code强大功能,支持浏览器中实时构建、编辑和部署React应用。项目已获17K+Star,提供快速创建Next.js应用、所见即所得的可视化编辑、AI驱动开发工具及一键部署协作等功能,是前端开发与设计协作的理想选择。
1453 0
|
前端开发 JavaScript 安全
剖析跨域问题始末及其解决方案——前端必备交叉知识(一)
跨域问题是前端开发中的常见挑战,了解并掌握不同的跨域解决方案能帮助你更高效地进行开发工作。本文对同源策略、跨域以及解决跨域的三种方案: CORS、JSONP、代理等跨域技术进行了介绍。选择合适的跨域解决方案非常重要。 在实际开发中,推荐优先考虑使用 CORS,因为它是现代浏览器支持的标准,且安全性较高。如果服务器无法修改,则可以考虑使用代理。如果是特殊情况,可以使用 JSONP,但要注意安全性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
599 0
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
1670 6
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
1268 4