06月16, 2016

FIS之我见

FIS很早就知道,然而真正将它用在项目中却是在上个月。我的两个弟兄,玩FIS都玩的比较6,并且能将它推广到团队中。相比之下,我就悲催很多,因为业务的原因,因为其他种种,最终FIS还是被推翻了。之所以写这篇文章,算是自己对它的一个记录吧。

FIS是什么

我的理解就是一个庞大的工程体系,当然你也可以只用FIS的冰山一角,比如压缩CSS/JS,预编译,ES6解析这些。但我比较蛋疼的是fis release出来的结果,无法快速地查看效果,因为它将所有的引用路径都变成了绝对地址,也就是意味着,当我用:

file://X:/xxx/xxx.html

所有引用的css、js、image都将找不到。当然如果用fis自带的服务器是OK的,或者配个nginx也行。但是一开始不知道这个规则的前端或者其他人,就会这样做的。

FIS的优势

1.按需加载及编译

2.自带server服务器

3.fis的内嵌命令,如:include、require,帮你轻松搞定多页面的相同头部、底部文件引用

4.模拟数据

5.模拟页面路由

6.commonjs开发,提供AMD、CMD、UMD的解决方案

7.资源定位

8.前后端解决方案,即配合后端的一系列方案,有java的(jello),php的(smarty)等

9.强大的Map表(用来分析静态资源文件的依赖)

FIS的学习成本

前面提了很多FIS的优势,最吸引我的一点是按需加载及编译。它可以帮我把冗余的文件去掉,保持最干净的项目。比如说bower来说,下载下来后,会有很多的doc、example等没用的文件,那么在编译后的项目中,这些都不会被生成。

那么说一下它的学习成本吧。根据我在团队中推广的效果来说,不是太理想。

  • 安装FIS

首先得怪网速。不让我乐观的是,我呆过的N多公司,没有一家网速能让我满意的,也许和我用无线也有关系。

所以有时候下载FIS会很慢。当然解决的办法也有,建立私有的npm库,将常用的包先放到内网去。

  • 安装FIS的插件

这个最想吐槽的是node-sass这个插件。安装好之后,总是需要npm rebuild才行,有时候切到taobao源都不行,最后用cnpm来install才行。

  • FIS的三条命令
fis3 install
fis3 server start
fis3 release

看似简单,其实也是有一定的学习成本的。

FIS为什么在我司难以推广

起初的时候,我的几个同事在我的带领下,开始用FIS,但在window下遇到几个问题:

  • 无法刷新浏览器,则livereload这个js 404,然后有时候又可以,但刷新的比较慢
  • 一开始的时候没有配置好fis.config,导致编译要4~5s,有时候更甚,后来处理掉了

另外,FIS似乎也没有办法做到hot reload,就是组件刷新,而非页面刷新。

话题回到为什么在我司难以推广,主要还是涉及到几点

  • 后端也要介入,修改代码。
  • 修改一个文字,要查看效果,必须要release,然后还要起一个服务器
  • 可能就是上面说的学习成本,正是因为网络慢,装插件装半天

结尾

其实FIS还是挺好的,譬如说JAVA项目要做前后分离,在老项目中最简单的方式无疑是FIS的jello方案了。

但这个考虑的是要SEO,对我司来说,SEO基本不考虑了。

当然上面的方案也不止一种,还可以把node作为中间层,前端请求node,node请求后端数据,render页面。

不过FIS能不能帮助团队快速解决当前的痛点,这就得看具体场景了,并不是说它能解决所有的问题的。

本文链接:www.my-fe.pub/post/fis-about.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。