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. [转载]Android 生成keystore,两种方式

    Refer : http://blog.csdn.net/ms03001620/article/details/8490314 一.eclipse 中生成android keystore 建立任意一个 ...

  2. Phpcms V9单页添加自定义字段

    说起文章自定义自段,大家都会想到 wordpress 的自定义字段,确实 wordpress 系统很强大,字段可以很灵活的在后台进行添加与更新,并能够很好的在前台进行调用,对于这点 phpcms v9 ...

  3. Pair programming

    Pair programming is an agile software development technique in which two programmers work together a ...

  4. create table repo_folder_operate_log_bak as select * from repo_folder_operate_log;

    create table repo_folder_operate_log_bak as select * from repo_folder_operate_log;

  5. POJ 1459 && ZOJ 1734--Power Network【最大流dinic】

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 25108   Accepted: 13077 D ...

  6. 苹果官方xcodeprojectbuild设置指南

    https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/ ...

  7. SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

     3 非注解的处理器映射器和适配器 3.1 非注解的处理器映射器 3.1.1 HandlerMapping处理器映射器 HandlerMapping 负责根据request请求找到对应的Handler ...

  8. 8 -- 深入使用Spring -- 1...3 容器后处理器

    8.1.3 容器后处理器(BeanFactoryPostProcessor) 容器后处理器负责处理容器本身. 容器后处理器必须实现BeanFacotryPostProcessor接口.实现该接口必须实 ...

  9. 入门常用SQL及官方文档的使用

    SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 5大主要类型: ①DQL(Data Query Language,数据查询语言)语句,主要由于se ...

  10. RF中采用python方法获取当月1号、上月1号、下月1号、当前日期N天后日期、当前日期N天前日期、指定月份总天数、上个月份、下个月份、当月最后1天日期、上个月最后1天日期、下个月最后1天日期

    ${TodayDate} evaluate datetime.date.today().strftime('%Y%m%d') datetime ${CurrentMonthFirstDay} eval ...