您的位置:首页 > 产品设计 > UI/UE

SeaJS 与 RequireJS 的差异1

2015-08-09 14:41 513 查看
SeaJS 遵循 CMD 规范,RequireJS 遵循 AMD 规范。CMD 模块依赖声明方式:
[code]define(function (require) {
var a = require('./a');
var b = require('./b');
})
[/code]
CMD 规范的弊端不能直接压缩:
require
是局部变量,意味着不能直接的通过压缩工具进行压缩,若
require
这个变量被替换,加载器与自动化工具将无法获取模块的依赖。模块书写有额外约定:路径参数不能进行字符串运算,不能使用变量代替,否则加载器与自动化工具无法正确提取路径。AMD 模块依赖声明方式:
[code]define(['./a', './b'], function (a, b) {
// more code ..
})
[/code]
AMD 规范的弊端依赖提前声明在代码书写上不是那么友好模块内部与 NodeJS 的 Modules 有一定的差异
其实无论是 CMD 还是 AMD 的异步模块,都无法与同步模块规范保持一致(NodeJS 的 Modules),
只有谁比谁更像同步模块而已。AMD 要转换为同步模块,除了去掉
define
函数的包裹外,
需要在头部使用[code]require
把依赖声明好,而 CMD 只需要去掉
define
函数的包裹即可。
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: