码迷,mamicode.com
首页 > Web开发 > 详细

SeaJS 与 RequireJS 的差异1

时间:2015-08-09 15:35:14      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

SeaJS 遵循 CMD 规范,RequireJS 遵循 AMD 规范。

CMD 模块依赖声明方式:

define(function (require) {
    var a = require(‘./a‘);
    var b = require(‘./b‘);
})

CMD 规范的弊端

  1. 不能直接压缩:require是局部变量,意味着不能直接的通过压缩工具进行压缩,若require这个变量被替换,加载器与自动化工具将无法获取模块的依赖。
  2. 模块书写有额外约定:路径参数不能进行字符串运算,不能使用变量代替,否则加载器与自动化工具无法正确提取路径。

AMD 模块依赖声明方式:

define([‘./a‘, ‘./b‘], function (a, b) {
    // more code ..
})

AMD 规范的弊端

  1. 依赖提前声明在代码书写上不是那么友好
  2. 模块内部与 NodeJS 的 Modules 有一定的差异
其实无论是 CMD 还是 AMD 的异步模块,都无法与同步模块规范保持一致(NodeJS 的 Modules),
只有谁比谁更像同步模块而已。AMD 要转换为同步模块,除了去掉define函数的包裹外,
需要在头部使用require把依赖声明好,而 CMD 只需要去掉define
函数的包裹即可。

SeaJS 与 RequireJS 的差异1

标签:

原文地址:http://www.cnblogs.com/ddzhao1989/p/4715142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!