如需要拼合以下两个依赖包:
1. lib.login 版本0.2.9
2. lib.mtop 版本0.5.9
可以用以下方法对两个依赖包进行拼合:
一、Grunt
Grunt中有package.json文件,该文件中会有依赖内容
{ ……
"dependencies" : {
"lib.login" : "0.2.9" ,
"lib.mtop" : "0.5.9"
}
……
}
并假设同时有以下目录:
--src 源代码
--build 要发布的打包代码
Grunt在执行时,会默认将package.json中的依赖文件与src中的源代码压缩打包成一个js文件dest.js,并将该文件放入build目录中用于发布。
这种方法的缺点在于,如果最终生成打包代码中,有20k的依赖文件和2k的业务代码,那么任何2k业务代码的改变,都会导致整个dest.js包的版本改变,从而导致用户需要下载整个22k的dest.js,而事实上我们只需要更新2k的业务代码而已,其他的20k依赖文件应该从缓存读取。
二、设置src为自动拼合页内容
将依赖包通过如下地址拼合成一个js文件:
http://g.tbcdn.cn/??mtb/lib-login/0.2.9/login.js,mtb/lib-mtop/0.5.9/mtop.js
这样仅需在第一次使用时对依赖文件进行src引用请求,即使业务代码有改变, 也只需重新下载业务代码,依赖文件仍从本地缓存获取。
三、pack.js(待查找)
配置XML资源文件,手动选择需要合并哪些文件。
以上方法(一、二)在依赖文件有所改变时,都需要浏览器对全部代码进行重新下载。