webpack的源代碼分析:從入口到構建出一個文件

源代碼入口

1. 我們調用yarn run react:build調用的是webpack的命令

具體命令在這個路徑~/workspace/mep-ui-sso/node_modules/.bin

2. cat webpack, 這個命令本身是個快捷方式,

在這裏插入圖片描述
裏面調用了npm的webpack包的入口js,

var localWebpack = require.resolve(path.join(process.cwd(), "node_modules", "webpack", "bin", "webpack.js"));

其中最終實例化出的對象是
在這裏插入圖片描述
所以一個疑問是js如何獲取路徑?
require包
requirejs中可以使用相對路徑和絕對路徑,絕對路徑需要注意的是使用需要添加上.js後綴 https://www.jianshu.com/p/c112e2d21521
因爲是用快捷方式,所以說得通,所有相對路徑都是包中的路徑


最終實例化

項目文件夾: node_modules/webpack/lib/webpack.js
在這裏插入圖片描述
從定義看webpack就是個compiler
裏面最主要是Compiler 繼承了Tapable是個架構,插件架構,發佈訂閱
在這裏插入圖片描述
Compilation
在這裏插入圖片描述
比如插件的運行,插件必須有一個apply方法,當插件被hook到tapable的框架時,回調apply方法,應用具體插件功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章