1、在使用shim插件将普通文件转换成CMD模块时,配置文件里配置字段alias时,
alias 的 key 值不能和 src 值一样,如果配置一样了,文件就加载不进来了。例如:
alias:{
"jquery":{
src: "jquery-1.8.3.min",
exports: "jQuery"
},
"handlebars":{
src: "handlebars",
exports:"Handlebars"
}
}
如上例,jquery的配置就是正确的。handlebars的配置就是错误的。
2、对一个模块配置了alias之后,会把aliae配置的key作为该模块的id。如果一个cmd模块已经提取id和依赖,那么再在alias对该模块做配置,由于已经提取了id,导致出现alia配置的id和提取的id不一样,结果是模块返回的是空对象({ }),即使配置aliea的key和模块已经提取的id一样,也不行。
3、seajs是通过url来判断两个module是否一样的。
4、如果多个提取了id和dependencies的module合并成了一个文件,析出的module的url解析规则是:如果id写的top level路径格式,则url就相对于seajs的base路径解析;如果id是相对路径,则ur就相对于页面的路径解析,和use解析一样,看AMD规范时说“the module id MUST be a "top-level" or absolute id (relative ids are not allowed)”。