SeaJS 遵循 CMD 规范,RequireJS 遵循 AMD 规范。异步
CMD 模块依赖声明方式:函数
define(function (require) { var a = require('./a'); var b = require('./b');
})
CMD 规范的弊端工具
require
是局部变量,意味着不能直接的经过压缩工具进行压缩,若require
这个变量被替换,加载器与自动化工具将没法获取模块的依赖。AMD 模块依赖声明方式:ui
define(['./a', './b'], function (a, b) { // more code .. })
AMD 规范的弊端spa
其实不管是 CMD 仍是 AMD 的异步模块,都没法与同步模块规范保持一致(NodeJS 的 Modules),
只有谁比谁更像同步模块而已。AMD 要转换为同步模块,除了去掉define
函数的包裹外,
须要在头部使用require
把依赖声明好,而 CMD 只须要去掉define
definerequiredefine函数的包裹便可。