https://github.com/seajs/seajs/blob/master/src/intro.js
赶脚这个文件,连括号都没有配对:(
项目最终是通过Grunt来进行合并和压缩的。拆分的主要目的在于项目开发的模块化以及集成测试的方便。
插件也好,框架也好,大部分的内部逻辑和变量对外是不暴露的。这时候就很难直接进行测试。那么开发的时候将整个项目包裹的(function(){中间部分})(this)
拆分成(function(){
+ 中间部分 + })(this)
。那么中间部分代码就暴露出来了。就可以直接访问具体的变量和内部函数了。
@kingapple 是的,因为分成了多个文件,中间部分也独立成了多个文件,那么测试的时候直接引用具体的需要进行测试的文件,那里面的变量和函数就能直接获取到了,显然测试就变得容易得多了。很多前端项目都是这样组织代码的。
@kingapple 你觉得3000行代码的一个文件乱还是按照功能划分的600行代码的5个文件乱?
他的配置文件在这里https://github.com/seajs/seatools/blob/master/Gruntfile.js 。
他的结构说明文档在这里https://github.com/lifesinger/lifesinger.github.com/issues/171。
按照你的逻辑 再大的项目,都应该把所有的代码放到一个文件里,那样最不乱了…
建议你看一下Jquery的源码。如果把这些都写在一个文件里面,那就真心崩溃… https://github.com/jquery/jquery/tree/master/src
@kingapple 每个项目都有自己组织项目结构的特点,我只是说了sea.js之所以这么组织代码的原因,不代表只能这么组织项目。你如果不喜欢进行代码拆分并且项目不是足够复杂,或者有别的测试方式进行代码模块测试,那都写一个文件里也未尝不可。