Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 1.79 KB

合并压缩.md

File metadata and controls

61 lines (44 loc) · 1.79 KB

性能优化-合并压缩

压缩css、js、html、png图片

在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方式:

conf/conf.js

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打包策略的尴尬

csssprite

feather同时支持自动进行雪碧图的生成,开发者不需要在使用任何切图工具进行小icon的合并,这样可以提高开发者的工作效率,使用起来也非常方便:

div{
    background: url(./1.png?__sprite);
}

a{
    background: url(./2.png?__sprite);
}