美文网首页
JavaSript模块规范 - AMD规范与CMD规范介绍

JavaSript模块规范 - AMD规范与CMD规范介绍

作者: janezhang | 来源:发表于2022-06-21 16:24 被阅读0次

    JavaSript模块规范 - AMD规范与CMD规范介绍

    阮一峰老师的解释文章

    http://blog.chinaunix.net/uid-26672038-id-4112229.html

    RequireJS 和 Sea.js 都是模块加载器,倡导模块化开发理念,核心价值是让 JavaScript 的模块化开发变得简单自然。

    不同之处

    两者的主要区别如下:

    定位有差异。RequireJS 想成为浏览器端的模块加载器,同时也想成为 Rhino / Node 等环境的模块加载器。Sea.js 则专注于 Web 浏览器端,同时通过 Node 扩展的方式可以很方便跑在 Node 环境中。

    遵循的规范不同。RequireJS 遵循 AMD(异步模块定义)规范,Sea.js 遵循 CMD (通用模块定义)规范。规范的不同,导致了两者 API 不同。Sea.js 更贴近 CommonJS Modules/1.1 和 Node Modules 规范。

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

    对开发调试的支持有差异。Sea.js 非常关注代码的开发调试,有 nocache、debug 等用于调试的插件。RequireJS 无这方面的明显支持。

    插件机制不同。RequireJS 采取的是在源码中预留接口的形式,插件类型比较单一。Sea.js 采取的是通用事件机制,插件类型更丰富。

    还有不少差异,涉及具体使用方式和源码实现,欢迎有兴趣者研究并发表看法。

    总之,如果说 RequireJS 是 Prototype 类库的话,则 Sea.js 致力于成为 jQuery 类库。

    相关文章

      网友评论

          本文标题: JavaSript模块规范 - AMD规范与CMD规范介绍

          本文链接:https://www.haomeiwen.com/subject/lvepkttx.html