seajs/seajs — Issue #100: id + parseAlias + etc.
Author: lifesinger
Created: 2011-10-21 01:10:37+00:00
State: open

在 1.0.2 之前，对 define(id, ...) 中的 id 不会做 parseAlias
1.0.2 后会做解析

不做解析的最佳实践是：id 永远由 spm 自动生成，这样，默认支持同一模块的多个不同版本，不会冲突。不足之处是：对需要手写 id 的场合（比如内嵌模块）支持存在隐患，同时对于 libs 下的模块，无法直接通过 combo 服务合并。

1.0.2 强制要先通过 alias 配置，比如 alias: { jquery: 'jquery/1.6.4/jquery' }
在 jquery.js 里，都写成了 define("jquery", ...)
define(id, ...) 会对 id 进行 parseAlias
好处是：可以 combo 了，对内嵌模块支持也非常直观简单。不足之处也很明显：不再能支持同一模块的不同版本，以及不再支持 require("jquery/1.6.4/jquery") 这种直接写法

如何两全齐美呢？