在feather2中压缩文件非常简单,只需要release时采用test和pd模式即可:
feather2 release pd -r demo
feather2 release test -r demo
合并文件通过设置pack属性或任意目录下新增pack.json文件即可
conf/conf.js
feather.config.set('pack', {
"pkg/aio.js": ['**/demo.js', 'script.js'],
"pkg/aio.css": "**.css"
});
components/jquery/pack.json
{
"./jquery.pack.js": "./**.js"
}
pack的优先级: pack属性 > 1级子目录pack.json > 2级子目录pack.json > ...
通常一些类库,插件文件我们可以通过pack的方式进行打包,但是一些零散资源的收集通过pack就比较麻烦,因为这些文件的数量和名字都可能随时会变,所以feather2提供了自动零散打包机制,目前仅支持combo方式:
feather.config.set('autoPack.type', 'combo'); //设置是否所有的资源自动以combo方式合并
feather.config.set('autoPack.options', {
syntax: ['??', ','], //combo的url的模式
onlyUnPackFile: true, //是否只合并未pack的文件
maxUrlLength: 2000 //每个combo后的url最大的长度,超过长度另外生成一个url
});
combo方式的设置同样会支持到页面模块化加载的资源,达到了资源加载最佳性能,并解决了传统模块化加载工具无法解决的按需加载问题和all in one打包策略的尴尬
feather同时支持自动进行雪碧图的生成,开发者不需要在使用任何切图工具进行小icon的合并,这样可以提高开发者的工作效率,使用起来也非常方便:
div{
background: url(./1.png?__sprite);
}
a{
background: url(./2.png?__sprite);
}