Peter Mu +

Seajs书写Transport 规范模块的两个小问题

require 获取依赖问题

如果定义的模块是这样写:

define('main',['a','b'],function(require, exports, module){
     var a = require('a');           
     var c = require('c');//猜猜会不会加载
     ...   
});

结果是: c 是 null,当你手写了依赖数组时,表示该模块只依赖 a 和 b,不会依赖 c,因此里面的 require('c') 会返回 null。 * 如果定义的模块是入口模块时,模块的ID必须是该模块的路径。非入口模块的ID可以随意指定。(是不是感觉怪怪的?我也觉得是,可能有它的道理吧!),通过require获取依赖时,对于采用Transport 规范的模块,require的参数必须是模块的ID。

另 : 关于seajs模块的ID,有个描述很好:

开发者没有显式地指定该模块的 id,对于匿名的模块,SeaJS 会用这个 JS 文件的 URL 作为它的 id ,并缓存 id 与 模块之间的关系