Webpack 源碼學習系列(一)

學習源碼,在於瞭解總體結構,對整個機制有一個總體了了解,作到內心有數,而不是看別人怎麼用就怎麼用,不報錯就行。webpack

獲取源碼

首先,先到github中獲取源碼。git

git clone https://github.com/webpack/webpack.git

尋找入口

獲取到源碼之後,首先要找到入口。 github

webpack是一個npm包,因此能夠在package.json中找到對應的入口,即:"main": "lib/webpack.js",web

webpack.js解讀

webpack.js裏只有兩個成員webpack(options, callback) exportPlugins(obj, mappings) npm

webpack函數的做用

  1. 檢查options
    clipboard.png
  2. 檢查是不是MultiCompiler的狀況(貌似還沒用過,先無論)
  3. 實例一個WebpackOptionsDefaulter對象,並調用processoptions初始化默認屬性
  4. 建立一個compiler,並初始化Pliugins,若是有callback就調用,而後返回。
    clipboard.png
  5. 在這中間還調用了NodeEnvironmentPlugin作了一些Node環境的設置(暫時無論)

exportPlugins的做用

從下圖中能夠看出,這是用來導出默認實現的Plugins的,暫時能夠不用管,後續能夠查看導出了什麼插件。

clipboard.png

總結

這一章只是簡單的看了一下入口文件進行一個簡單的瞭解。json

本章內容內容:app

  • webpack入口
  • lib/webpack.js的主要內容

下一章內容函數

  • compiler對象
相關文章
相關標籤/搜索