前端模块化依赖的主流库也就数国内的Seajs和国外的requirejs,这里就不陈述。采用了Seajs作为模块管理器,zepto作为基础库文件,lib主要包含了项目中用到的主流第三方库文件。
我们知道模块化带来的最大弊端便是HTTP请求数增加,所以上线的时候必须合并文件。下图中的package模块是文件大集合,打包了很多个JS模块,除去上图中的基础库文件和业务模块层,在上线的时候大部分文件都被打包在package.js里。
性能优化 网站优化 网站代码优化 网站性能优化
大部分页面的JS请求是这样的:
性能优化 网站优化 网站代码优化 网站性能优化
细心点的同学可能注意到两个问题:文件的大小和加载时间。刚才的截图还是在PC端截取的,手机和不同网络环境的表现会更加糟糕。
现在来看下目录
性能优化 网站优化 网站代码优化 网站性能优化
存在的问题:
目录看起来算规范,但实际上是公共的和业务的混在一块。
大部分文件合并在一个文件,合并策略不合理。
由第二点引发的第三个问题,发布上线时,只要两人发布涉及到package文件,冲突必然发生。
发布时需要down下上一次的文件,对照合并的新文件,以免发错。
注意,第四点是人工。一不小心发错,或者把他人刚发布的文件覆盖了,这种事情发生10+次。
只有一台测试机器,测试环境经常覆盖是常事。
版本控制问题,不以SVN为版本,而是预发布机器上代码,管理混乱