1看目录结构,代码不算多,命名划分很清晰,仅看命名大概能猜到它的作用,比如require.js源码舒服多了
sea.js - 定义sea.js的命名空间,在命名空间定义一些供内部适用的模块,达到分模块调试sea.js的目的
util前缀的文件 :相对通用的工具类函数
util-lang.js - 实现了一些基础函数,比如forEach, map等
util-error.js - 提供错误输出的帮助函数,主要用于调试分析
util-helper.js - 实现了解析module的url和id的函数
util-dom.js - 和浏览器相关的操作 比如添加script , link 节点的操作都在这
fn前缀的文件: seajs中供内部适用的函数
fn-load.js : seajs.use实际上是调用该文件的方法
fn-define.js : define 模块定义函数逻辑
fn-require.js : 用于构造require的对象,该文件中包含factory的初始化过程
fn-config.js : 包含seajs.config的实现,用于配置信息
fn-use.js : 包含seajs.use的实现
sea-api.js:将实现的函数引用到seajs对象上
1.如果想看如何处理module的创建以及依赖过程的实现细节重点看fn-define.js,其中使用到了util-helper.js中的不少函数
2.如果想看seajs如何实现在use之前构建依赖环境重点看fn-load.js,fn-require.js,其中对浏览器动态创建script节点使用到了util-dom.js