1.webpack遇到扣出来的模块A还调用其它模块B的时候,还要定位到B模块并把代码扣出来的情况
例如,188模块中,调用了175模块(n(175)),要定位到175模块的代码,需要在return e(t).call(r.exports,r,r,exports,f)处打断点,其实此时的n(175),就是加载器的f(175),关于模块加载器代码分析上一篇博文有记录
断下来之后,在控制台console处输入e[175],在出现结果中的方法代码上双击,就定位到了175模块位置:
2、分析代码时候遇到n.n(c):
跟进去的方法有两种:1,鼠标放到n.n上点击进去
2.在控制到输入n.n,在出现的结果中点击进去
n.n调用的是f.n方法:
f.n的参数是e,此时e是n.n(c)中传来的c,第一行代码:
//这行定义t,如果e而且e.esModule存在就返回e的默认(还是e),否则返回e,还是e,所以t无论如何都等于e;
var t = e&& e._esModule ? function(){
return e.default}:function(){
return e
};
return f.d(t,"a",t),t
//所以f.n的返回值就是传进来什么参数就返回什么
所以调用f.n的n.n(c)就是返回了c跟n(c)一样的