`
mutongwu
  • 浏览: 438912 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

fis-amd 的使用与修改

阅读更多
https://github.com/fex-team/fis-postprocessor-amd
+
https://github.com/hefangshi/fis-postpackager-autoload
+
https://github.com/hefangshi/fis-postpackager-simple

可以说是 https://github.com/fex-team/mod 的加强版,前者对amd模块做了更好的兼容和打包功能。

个人在使用上,有点不方便的地方:在写一个UI组件的时候,例如: Button,那么常见的,它应该包含 Button.js 和 Button.css 2个文件。 Button.js 作为一个 AMD组件来编写,没有问题,可以从UI的完整性来讲,它是“依赖” Button.css的。但是amd的处理的时候,并不把 CSS作为 模块 看待,所以默认都把依赖的css资源,直接link连接到页面里面,不提供【异步加载CSS】的功能。当然,也不是完全不支持,如果使用requirejs的话,CSS还是实现异步加载的,但是也不是作为模块来看待的。

因此,个人做了如下修改:
1.  fis-postpackager-autoload(https://github.com/mutongwu/fis-postpackager-autoload/tree/mutongwu-patch-1) ,配置的时候,如果CSS资源有个定义
{
    reg : /^\/modules\/(.*)\.css$/i,
    extras: {
      useAsync : true // 加上这一句,就把它认为是模块,加到资源表里面。
    }
}


2. 模块加载器(https://github.com/fex-team/fis-amd-demo/blob/master/lib/mod-amd.js)为了能适应CSS的加载,也需要做点调整,主要是copy了requirejs的CSS加载插件代码进来(可以不用完全不理重量级的requirejs了)


实验工程代码请看附件。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics