FIS是专为解决前端开发中自动化工具、性能优化、模块化框架、开发规范、代码部署、开发流程等问题的工具框架,相比gulp和grunt更傻瓜化,上手更容易,最近抽空学习了一下,分享一下心得。

  FIS官网: http://fis.baidu.com/

  FIS开发文档API:http://fis.baidu.com/docs/beginning/getting-started.html

  慕课网FIS教程: http://www.imooc.com/learn/220

一、fis安装

npm install -g fis   全局安装fis

这里一定要全局安装,不然如果我们--save-dev 安装fis   然后--save-dev 安装lights会报错,其实这样全局安装也有好处,就是我们可以全局用fis命令。

2.安装ligths包管理器

npm install -g lights

文档https://github.com/fex-team/lights/blob/master/doc/node_module.md

Lights提供的包管理功能不仅能够通过简单命令就完成一系列操作,同时提供了私有仓库供产品线维护私有资源。
使用npm安装Lights (注意已安装的请更新至0.0.86及以上版本)。

3.获取示例

 lights install fis-quickstart-demo

#进入DEMO目录 cd fis-quickstart-demo
#编译并发布DEMO fis release
#命令启动FIS的本地调试服务器功能对构建发布的项目进行预览调试 fis server start

这里注意一下:我们可以把最近的静态资源那里,fis-conf.js,fis-conf-no-std.js,fis-conf-timestamp.js,package.json移入自己的项目里也可以实现fis的自动化处理,输出的文件到output里面含义map.json对应处理文件路径的依赖关系。

4.资源压缩

资源压缩一直是前端项目优化中非常重要的一环,使用FIS我们无需任何配置,只需要一个命令就可以完成压缩工作。

fis release --optimize  //一行密令压缩

fis release --optimize   --d  ../output    //输出文件到相对项目的output文件

5.FIS默认的产出目构录
FIS构建并不会修改源代码目录中的内容,而是拥有独立的产出的目录,FIS默认的产出目构录可以通过 fis server open 打开,你也可以通过 fis release -d path/to/output 指定你希望的输出目录

打开产出文件目录:

 fis server open 

发布到项目根目录的output目录下, 注意,这里的output其实是一个内置的部署配置名,而不是一个目录名

fis release -d output

发布到相对 工作目录 的路径

fis release -d ../output

发布到绝对路径:

fis release -d /home/work/ouput
# win
fis release -d d:/work/output

使用配置文件的 deploy节点配置 进行发布,此配置可将代码上传至远端

fis release -d remote

6.添加文件版本
FIS能够根据静态资源的内容自动生成文件版本,自动更新资源引用路径,解决缓存更新问题,告别手动更新时间戳。
我们通过开启 --md5 参数,为项目中的静态资源添加md5版本号

$ fis release --optimize --md5 # fis release -om

7.设置打包
FIS可以通过pack来进行资源文件的合并,比如我们需要将DEMO中的公共库文件打包在一起,可以修改fis-conf.js配置,加入pack配置

//Step 1. 取消下面的注释开启simple插件,注意需要先进行插件安装 npm install -g fis-postpackager-simple
fis.config.set('modules.postpackager', 'simple'); //通过pack设置干预自动合并结果,将公用资源合并成一个文件,更加利于页面间的共用 //Step 2. 取消下面的注释开启pack人工干预
fis.config.set('pack', {
'pkg/lib.js': [
'/lib/mod.js',
'/modules/underscore/**.js',
'/modules/backbone/**.js',
'/modules/jquery/**.js',
'/modules/vendor/**.js',
'/modules/common/**.js'
]
}); //Step 3. 取消下面的注释可以开启simple对零散资源的自动合并
fis.config.set('settings.postpackager.simple.autoCombine', true); //Step 4. 取消下面的注释开启图片合并功能
fis.config.set('roadmap.path', [{
reg: '**.css',
useSprite: true, //合并雪碧图
useHash:true //使用md5
}]);
fis.config.set('settings.spriter.csssprites.margin', );

8.插件安装fis-postpackager-simple进行打包处理

fis插件的安装分为两步,首先我们需要通过npm包管理工具进行插件安装

$ npm install -g fis-postpackager-simple

插件安装到本地后,我们还需要通过项目配置文件开启插件,修改项目根目录下的fis-conf.js配置,开启fis-postpackager-simple插件

$ cd fis-quickstart-demo
$ vi fis-conf.js #vi是linux下的文本编辑器,windows用户可以选用任意文本编辑器对fis-conf.js文件进行编辑。 //file : fis-conf.js
fis.config.set('modules.postpackager', 'simple');

9.应用打包
为了开发调试时更加方便 fis release 默认不会合并资源,在指定了 --pack 参数后,FIS才会进行打包合并处理。

$ fis release --optimize --md5 --pack # fis release -omp

10.自动打包
利用simple插件,我们还可以按页面进行自动合并,将没有通过pack设置打包的零散资源自动合并起来。

//file : fis-conf.js
//开启autoCombine可以将零散资源进行自动打包
fis.config.set('settings.postpackager.simple.autoCombine', true);
再次运行FIS构建项目
$ fis release -omp

11.合并图片
在FIS中,如果样式文件中引用图片时,添加了 ?__sprite query,那么将样式文件使用 pack 设置进行合并后,不仅仅会合并样式文件,还会将所有标识了合并的图片进行合并处理。
我们通过 pack 设置,将所有样式文件合并为 aio.css

fis.config.set('pack', {
'/pkg/lib.js': [
'js/lib/jquery.js',
'js/lib/underscore.js',
'js/lib/backbone.js',
'js/lib/backbone.localStorage.js',
],
'/pkg/aio.css': '**.css'
});
再次运行FIS构建项目
$ fis release -omp

12.fis自动化文件监听,自动刷新

文件监视
通过文件监视功能,我们可以要求FIS在项目文件出现修改时,自动增量构建项目文件

fis release --watch #fis release -w

自动刷新
我们只需要在文件监视的参数基础上添加 --live 或 -L 参数即可实现在项目文件发生修改后,自动刷新页面的功能,大幅提高页面制作效率。

fis release --watch --live #fis release -wL       #要求浏览器环境支持WebSocket

大体上就学到了这些同学,用过之后,整体感觉fis自动化,比较适合要求快速开发的项目,我们静态开发,然后用fis进行压缩,加版本好,然后获取发布文件修复路径,删除配置文件发布,就ok了。以后我也将结合fis、grunt、gulp一起来使用,我想会很棒。

fis前端开发框架的更多相关文章

  1. Bootstrap 简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。

    Bootstrap 简洁.直观.强悍的前端开发框架,让web开发更迅速.简单.

  2. Foundation 6 – 先进的响应式的前端开发框架

    Foundation 6 让您的项目从原型到成平比以往任何时候都更有效!它包括了广泛的模块和灵活的组件.这些多功能就像轻便的积木,可以很容易地把你的想法实现.所有的代码片段支持ARIA属性和作用以及如 ...

  3. Schema – 模块化,响应式的前端开发框架

    Schema 是一个模块化的,响应式的前端框架,方便,快捷地帮助您迅速启动你的 Web 项目.Schema 配备完整的创建多个视图的能力.从桌面显示器到移动设备,它的12列网格提供强大的灵活性. Sc ...

  4. Concise - 面向对象的,一致的前端开发框架

    在当今世界,有许多前端开发的框架.那么,为什么还要再造一个框架呢?Concise 建立的目的是使你有很多的开箱即用的选项,让你能够方便的搭建移动友好的网站和 Web 应用程序.另外还包括一个简单的网格 ...

  5. Crumpet – 使用很简单的响应式前端开发框架

    Crumpet 是一个简单的响应式的基于 SASS/SCSS 的响应式前端框架,保持你的 HTML 代码简洁.内置尽量使用占位符选择器,以减少你的 HTML 标记的大小,没有凌乱的 HTML 代码.快 ...

  6. Skeljs – 用于构建响应式网站的前端开发框架

    skelJS 是一个轻量级的前端框架,用于构建响应式站点和应用程序.让设计人员和开发人员可能够使用四个强大的组件:CSS 网格系统,响应式处理程序,CSS 的快捷方式和插件系统. 您可能感兴趣的相关文 ...

  7. Furatto – 轻量,友好的响应式前端开发框架

    Furatto 是一个基于 Bootstrap & Foundation 的前端开发框架,用于快速开发网站.这个框架采用流行的扁平化设计和响应式设计.除了布局和网格之外,所有的主要元素都有预定 ...

  8. 国内HTML5前端开发框架汇总

    国内HTML5前端开发框架汇总 Dawei Cheng 程大伟... 于 星期日, 02/12/2012 - 20:53 提交 国外很有多优秀的HTML5前端开发框架相信大家都耳熟能详:JQuery ...

  9. Bootstrap非常简单实用的web前端开发框架

    今天无意间用firebug看网站的代码发现了Bootstrap,之前从来没有听说过这个东东,于是对它产生了好奇感,通过百度我了解到了Bootstrap是一款非常简单,强悍,实用,移动设备端优先使用的这 ...

随机推荐

  1. win8.1的ie11无法打开127.0.0.1和本机IP访问

    解决方法:把ie11安全选项里的启动保护模式对勾去掉!

  2. MongoDB 连接池

    http://www.cnblogs.com/huangfox/archive/2012/04/01/2428947.html http://www.iteye.com/problems/97350

  3. 使用pycharm,追求最优的代码。

    1.最近追求的是代码0警告,没有任何提示. 怎么追求这样的目标,不需要再去单独使用pylint和flake8这些玩意,只需要看pycharm右边编辑区的竖向滚动条的黄色就可以了. 2. 比较糟糕的就是 ...

  4. iOS使用NSURLConnection发送同步和异步HTTP Request

    1. 同步发送 - (NSString *)sendRequestSync { // 初始化请求, 这里是变长的, 方便扩展 NSMutableURLRequest *request = [[NSMu ...

  5. C++ 关键字——friend【转载】

    转载自: http://www.cnblogs.com/CBDoctor/archive/2012/02/04/2337733.html 友元是指: 采用类的机制后实现了数据的隐藏与封装,类的数据成员 ...

  6. Android Studio 视图解析

    AS一共同拥有三种视图.我们来分别分析每一种视图的作用. 一.Project视图.(白色字体的文件夹/文件可不关注) 图片中的链接 Gralde介绍:http://stormzhang.com/dev ...

  7. SpringMVC -- 梗概--源码--壹--跳转

    1.配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=&qu ...

  8. jackson 转换 enum 类型

    REST API 接口要求 requster json 的 lifeCycle 域只能填 YOUNG, OLD,对于其他的 lifeCycle,都要给 requester 返回 bad request ...

  9. WPF路由事件学习(一)

    路由事件与一般事件的区别在于:路由事件是一种用于元素树的事件,当路由事件触发后,它可以向上或向下遍历可视树和逻辑树,他用一种简单而持久的方式在每个元素上触发,而不需要任何定制的代码(如果用传统的方式实 ...

  10. MySQL存储过程的创建及调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 1.创建存储过程 2.调用存储过程 3.存储过程体 4.语句块标签 存储过程的参数 1.in:向过程里传参 2.out:过 ...