成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Webpack 源碼(二)—— 如何閱讀源碼

wing324 / 2195人閱讀

摘要:正所謂四兩撥千斤,找對(duì)要分析的對(duì)象以及它的關(guān)系網(wǎng),就找到了正確的分析源碼的方法下面的是我的公眾號(hào)二維碼圖片,歡迎關(guān)注。

1、如何調(diào)試閱讀源碼

如果想要了解 Webpack 的流程,只要閱讀 @七玨 細(xì)說(shuō) webpack 之流程篇 所述的內(nèi)容就夠了,講解地比較全面了;本文就不對(duì) Webpack 流程再做重復(fù)的描述,而是從另外一個(gè)角度補(bǔ)充分析 Webpack 源碼;

Webpack 中最為重要的無(wú)非是 Compiler 、Compilation 、Module等對(duì)象,閱讀源碼的過(guò)程其實(shí)可以認(rèn)為是 了解對(duì)象的方法和屬性的過(guò)程;通讀 Webpack 這個(gè)大工程的源碼,以一個(gè)公司(Company)來(lái)類比,你會(huì)發(fā)現(xiàn)這幾個(gè)對(duì)象的關(guān)系大致如下:

Webpack 就是一個(gè)大公司

Compiler 就像公司的董事會(huì),只把握公司大方向的走向,不關(guān)心細(xì)節(jié)實(shí)現(xiàn)

Compilation 就像是 CEO,由董事會(huì)任命,主要操心整個(gè)公司運(yùn)行,調(diào)度各個(gè)部門運(yùn)作

ModuleFactory 就像各個(gè)部門了,從事打造各種產(chǎn)品細(xì)節(jié)

最終輸出的 bundle 就像是具體的產(chǎn)品

這個(gè)類比或許有些欠妥,但也大致能展現(xiàn)出這個(gè)核心功能模塊的位置,有個(gè)大概了解即可;

2、分析對(duì)象屬性和方法

在源碼分析中,最基本的有兩點(diǎn):

需要分析對(duì)象本身的屬性和方法

分析對(duì)象之間的關(guān)系(繼承、實(shí)現(xiàn))等

和人的社交類似,前者回到某個(gè)人本身的屬性(性別、年齡等)和功能(琴棋書畫等技能),后者回答某人人的社會(huì)關(guān)系(兄弟、父子等關(guān)系);

以 Compiler 實(shí)例為例,在 Webstorm 中我們打一個(gè)斷點(diǎn),右鍵使用 Evalute Expression... 功能:

獲取該實(shí)例對(duì)象的屬性,直接使用 Object.getOwnPropertyNames(obj) 獲取:

使用Object.getPrototypeOf(compiler) 就能根據(jù)當(dāng)前實(shí)例獲取其原型對(duì)象,主要是關(guān)注上面定義的方法:

同時(shí)進(jìn)一步分析其繼承的對(duì)象,就能獲知 Compiler 對(duì)象的繼承關(guān)系:

到這里為止我們已經(jīng)比較全面地掌握了 Compiler 對(duì)象,對(duì)源碼的進(jìn)一步分析打下了基礎(chǔ);比如在此基礎(chǔ)上,我們可以分析上一節(jié)所述的 make事件階段 過(guò)程:

以及 loader 加載過(guò)程:

等等其他你想了解的內(nèi)容,都可以基于上面的功能分析出來(lái),這里就不一一列舉了。

正所謂四兩撥千斤,找對(duì)要分析的 對(duì)象 以及 它的關(guān)系網(wǎng) ,就找到了正確的分析源碼的方法;

下面的是我的公眾號(hào)二維碼圖片,歡迎關(guān)注。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81147.html

相關(guān)文章

  • 前方來(lái)報(bào),八月最新資訊--關(guān)于vue2&3的最佳文章推薦

    摘要:哪吒別人的看法都是狗屁,你是誰(shuí)只有你自己說(shuō)了才算,這是爹教我的道理。哪吒去他個(gè)鳥命我命由我,不由天是魔是仙,我自己決定哪吒白白搭上一條人命,你傻不傻敖丙不傻誰(shuí)和你做朋友太乙真人人是否能夠改變命運(yùn),我不曉得。我只曉得,不認(rèn)命是哪吒的命。 showImg(https://segmentfault.com/img/bVbwiGL?w=900&h=378); 出處 查看github最新的Vue...

    izhuhaodev 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    khs1994 評(píng)論0 收藏0
  • 【用故事解讀 MobX 源碼(四)】裝飾器 和 Enhancer

    摘要:所以這是一篇插隊(duì)的文章,用于去理解中的裝飾器和概念。因此,該的作用就是根據(jù)入?yún)⒎祷鼐唧w的描述符。其次局部來(lái)看,裝飾器具體應(yīng)用表達(dá)式是,其函數(shù)簽名和是一模一樣。等裝飾器語(yǔ)法,是和直接使用是等效等價(jià)的。 ================前言=================== 初衷:以系列故事的方式展現(xiàn) MobX 源碼邏輯,盡可能以易懂的方式講解源碼; 本系列文章: 《【用故事解...

    maybe_009 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<