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函數的包裹便可。