SeaJS 与 RequireJS 的差别1

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

CMD 模块依赖声明方式:函数

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

CMD 规范的弊端工具

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

AMD 模块依赖声明方式:ui

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

AMD 规范的弊端spa

  1. 依赖提早声明在代码书写上不是那么友好
  2. 模块内部与 NodeJS 的 Modules 有必定的差别
其实不管是 CMD 仍是 AMD 的异步模块,都没法与同步模块规范保持一致(NodeJS 的 Modules),
只有谁比谁更像同步模块而已。AMD 要转换为同步模块,除了去掉define函数的包裹外,
须要在头部使用require把依赖声明好,而 CMD 只须要去掉definedefinerequiredefine函数的包裹便可。
相关文章
相关标签/搜索