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连接到页面里面,不提供[b]【异步加载CSS】[/b]的功能。当然,也不是完全不支持,如果使用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了)
实验工程代码请看附件。