daxingplay / kmc

module compiler for kissy
MIT License
32 stars 36 forks source link

模块内部有额外的KISSY.add的处理 #38

Closed daxingplay closed 10 years ago

daxingplay commented 10 years ago
KISSY.add(function(S){
   S.add('xxx', function(){});
});

这种情况下,会认为模块是xxx

maxbbn commented 10 years ago

什么场景会用到这种写法?

在 2013年12月13日星期五,橘子 写道:

KISSY.add(function(S){ S.add('xxx', function(){});});

这种情况下,会认为模块是xxx

— Reply to this email directly or view it on GitHubhttps://github.com/daxingplay/kmc/issues/38 .

Zheng Biao (郑标)

+8658111820

daxingplay commented 10 years ago

倒不是关心他啥场景下会用这种写法。应该和 https://github.com/daxingplay/kmc/issues/28 这个issue一样,可能是分析的时候没有加这个判断,理论上,无论他里面怎么写,都应该是分析到最外层的模块名而不是xxx

guangwong commented 10 years ago

我周末去看看这个问题,并且可能会解决。 我也遇到了这个问题,说到做到。不去解决欢迎来抽我

daxingplay commented 10 years ago

@guangwong 解析ast的部分在这儿:https://github.com/daxingplay/kmc/blob/master/lib/dependencies.js

guangwong commented 10 years ago

或许我们可以弄一个环境让代码跑起来,不用静态解析。这个思路会稍微麻烦一点,但是显得牛逼。 好吧,继续静态解析吧。哈哈哈

daxingplay commented 10 years ago

这个思路一开始就想过了,但是太复杂了,而且会有各种异常的出现不太好处理,算了吧,还是静态解析简单。谢谢90大神的PR。

https://github.com/daxingplay/kmc/pull/42