FIS3 发布,来自百度的前端解决方案

点击数:44032015-07-10 00:12:47 来源: 云南创想网——云南领先的网络开发团队,安浪科技旗下(云南网站开发-云南网站建设-云南微信公众号开发-云南广告传媒公司-云南广告设计-云南广告公司-云南广告制作-云南APP开发-云南影视设计制作-云南微网站制作-云南微信开发-云南网络公司-云南网页设计-云南网络服务-云南影视拍摄制作-云南安卓开发-云南iOS开发-云南创想科技-云南创想传媒-云南网站备案-云南域名注册-云南服务器租用-云南虚拟主机-域名网站注册-云南商标注册-云南公司注册-楚雄网站开发-楚雄网站建设-楚雄微信公众号开发-楚雄广告传媒公司-楚雄广告设计-楚雄广告公司-楚雄广告制作-楚雄APP开发-楚雄影视设计制作-楚雄微网站制作-楚雄微信开发-楚雄网络公司-楚雄网页设计-楚雄网络服务-楚雄影视拍摄制作-楚雄安卓开发-楚雄iOS开发-楚雄创想科技-楚雄创想传媒-楚雄网站备案-楚雄域名注册-楚雄服务器租用-楚雄虚拟主机-域名网站注册-楚雄商标注册-楚雄公司注册-昆明网站开发-昆明网站建设-昆明微信公众号开发-昆明广告传媒公司-昆明广告设计-昆明广告公司-昆明广告制作-昆明APP开发-昆明影视设计制作-昆明微网站制作-昆明微信开发-昆明网络公司-昆明网页设计-昆明网络服务-昆明影视拍摄制作-昆明安卓开发-昆明iOS开发-昆明创想科技-昆明创想传媒-昆明网站备案-昆明域名注册-昆明服务器租用-昆明虚拟主机-域名网站注册-昆明商标注册-昆明公司注册)

就在过去的若干月里面,FIS 团队和@fouber一起就 FIS 发布以来一年多的使用情况做了一些总结,并且对其不完善地方做了抽象,终于确定了 FIS 的下一代 FIS3。如今 FIS3 在 FIS 团队的努力下已经发布了!

GitHub 地址:https://github.com/fex-team/fis3

那么 FIS3 到底有哪些新奇的地方;

之所以不是 FIS2 而是 FIS3 是由于已经开源的 FIS 前还有一个用 PHP 实现的 FIS,FIS 开源以来都被称为 FIS2.0。

2013 年上 FIS 在@berg@walter@fouber带领下的 FIS 团队的努力下诞生,并且解决了诸多前端工程问题以及给前端工程化一种新的思路。包括但不限于在模块化开发、自动化工具、资源加载、性能优化等等方面的突破。

FIS 通过对多年的前端项目的支持以及总结,发现前端语言不可或缺但是确实缺少的三种语言能力,资源内嵌、定位资源、依赖声明。有了这三种语言能力就可以漂亮的解决各种前端工程需求下的性能优化、模块化开发等等问题。

FIS 提供工具增加了这三种语言能力,并且给了一种资源加载管理的思路,基于静态资源表的静态资源管理方法,合理的解决了资源加载中的按需、同步/异步、依赖管理、缓存、合并、内嵌等工程问题。

FIS3 在 FIS 的基础上提升了易用性以及可扩展能力。用一种更简单的配置方法、更全面的插件扩展支持来为打造前端工程方案提供助力;

FIS3 面向前端的工程构建系统,解决前端工程中性能优化、资源加载(异步、同步、按需、预加载、依赖管理、合并、内嵌)、模块化开发、自动化工具、开发规范、代码部署等问题。

易于理解的配置

FIS3 提出了这样一种配置方式,它就像是 CSS 一样后面书写的规则会覆盖前面前面书写的规则,像 CSS 有一些固定的规则供用户设置;文件分配到的属性,将会在编译阶段决定此文件将如何处理。

当我们要完成这样一些事情

  • 除了某些 js 文件        exclude.js以外,其他的 js 文件都进行压缩。      

    ?
    1
    2
    3
    4
    5
    6
    7
    8

    // vi fis-conf.js

    fis.match('*.js', {

    optimizer: fis.plugin('uglify-js')

    });

    fis.match('exclude.js', {

    optimizer: null

    });

  • 在开发阶段 js 不做压缩,发布上线时 js 需要压缩。

    ?
    1
    2
    3
    4
    5
    6
    7

    // vi fis-conf.js

    fis.match('*.js', {

    optimizer: fis.plugin('uglify-js')

    });

    fis.media('dev').match('*.js', {

    optimizer: null

    });

    fis3 release压缩        

    fis3 release dev不压缩        

fis.match(selector, props [, important])给文件分配属性    

FIS3 的核心配置思想是通过给文件分配属性来控制工具对文件的处理,比如压缩、异构语言的解析、资源依赖的收集、代码检查等;  

一切流程都可扩展

FIS3 重新梳理了流程,文件在 FIS3 中编译都由用户指定的插件完成,包括合并、压缩优化以及对异构语言的解析等。这一切都由你自己掌控。

?
1
2
3
4
5
6

fis.match('*.less', {

 parser: fis.plugin('less')

});

fis.match('*.{css,less}', {

 optimizer: fis.plugin('clean-css')

});

  • fis.plugin(name [, props])插件调用接口      

FIS3 支持本地 NPM 包的加载,这将意味着你不再需要    npm install -g安装一个插件到全局包目录,而可以加载本地插件了;这样方便你插件开发调试。但为了便于维护,FIS3 建议你最终发布到 NPM 上的插件依然沿用全局安装。  

FIS3 对整个编译流程提供诸多事件,方便你做特定化需求;并且推出新的插件类型    hook,    hook插件会在编译之前做加载,可在其内部绑定一些事件来完成特定的需求,比如相对路径的支持。  

其他特性

  • 可扩展三种语言能力语法

  • 方便易用的脚手架

  • 支持 AMD、commonJS、Rosetta(web-components) 模块化方案 (插件提供)

  • 模块化方案可自由定制

  • 若干功能改进

    • watch功能开启时,修改项目配置文件            fis-conf.js即时生效,不再需要重启          

$

FIS3 主要是用户易用性和扩展能力的提升,定位是方便那些做前端工程方案的用户能快捷的完成方案定制,我们不期待所有的人都能拿来即用,而我们期待的是 FIS3 真正能使你从折腾工具中解放出来,通过几行配置、依靠 FIS 社区能快速解决你遇到的工程问题。  


【责任编辑:(Top) 返回页面顶端