RequireJS 与 SeaJS 的异同

相同之处

RequireJS 和 SeaJS 都是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单天然。浏览器

不一样之处

二者的区别以下:服务器

  1. 定位有差别。RequireJS 想成为浏览器端的模块加载器,同时也想成为 Rhino / Node 等环境的模块加载器。SeaJS 则专一于 Web 浏览器端,同时经过 Node 扩展的方式能够很方便跑在 Node 服务器端。异步

  2. 遵循的规范不一样。RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD (通用模块定义)规范。规范的不一样,致使了二者 API 的不一样。SeaJS 更简洁优雅,更贴近 CommonJS Modules/1.1 和 Node Modules 规范。模块化

  3. 社区理念有差别。RequireJS 在尝试让第三方类库修改自身来支持 RequireJS,目前只有少数社区采纳。SeaJS 不强推,采用自主封装的方式来“海纳百川”,目前已有较成熟的封装策略。ui

  4. 代码质量有差别。RequireJS 是没有明显的 bug,SeaJS 是明显没有 bug。插件

  5. 对调试等的支持有差别。SeaJS 经过插件,能够实现 Fiddler 中自动映射的功能,还能够实现自动 combo 等功能,很是方便。RequireJS 无这方面的支持。调试

  6. 插件机制不一样。RequireJS 采起的是在源码中预留接口的形式,源码中留有为插件而写的代码。SeaJS 采起的插件机制则与 JavaScript 语言以及Node 的方式一致:开放自身,让插件开发者可直接访问或修改,从而很是灵活,能够实现各类类型的插件。模块化开发

还有很多细节差别就很少说了。接口

总之,SeaJS 从 API 到实现,都比 RequireJS 更简洁优雅。若是说 RequireJS 是 Prototype 类库的话,则 SeaJS 是 jQuery 类库。ip

最重要的

最后,向 RequireJS 致敬!RequireJS 和 SeaJS 是好兄弟,一块儿努力推广模块化开发思想,这才是最重要的。

相关文章
相关标签/搜索