小編給大家分享一下webpack的打包原理,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
站在用戶的角度思考問題,與客戶深入溝通,找到舟曲網站設計與舟曲網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站設計制作、網站建設、企業官網、英文網站、手機端網站、網站推廣、域名與空間、虛擬空間、企業郵箱。業務覆蓋舟曲地區。
webpack打包原理是將根據文件間的依賴關系對其進行靜態分析,然后將這些模塊按指定規則生成靜態資源,當 webpack處理程序時,會遞歸地構建一個依賴關系圖,其中包含應用程序需要的每個模塊,然后將所所有這些模塊打包成bundle。
將根據文件間的依賴關系對其進行靜態分析,然后將這些模塊按指定規則生成靜態資源,當 webpack 處理程序時,會遞歸地構建一個依賴關系圖(dependency graph),其中包含應用程序需要的每個模塊,然后將所有這些模塊打包成一個或多個 bundle。
webpack只是一個打包模塊的機制,只是把依賴的模塊轉化成可以代表這些包的靜態文件。并不是什么commonjs或者amd之類的模塊化規范。webpack就是識別你的入口文件。識別你的模塊依賴,來打包你的代碼。
至于你的代碼使用的是commonjs還是amd或者es6的import。webpack都會對其進行分析。來獲取代碼的依賴。
webpack做的就是分析代碼。轉換代碼,編譯代碼,輸出代碼。webpack本身是一個node的模塊,所以webpack.config.js是以commonjs形式書寫的(node中的模塊化是commonjs規范的)
webpack中每個模塊有一個唯一的id,是從0開始遞增的。整個打包后的bundle.js是一個匿名函數自執行。參數則為一個數組。數組的每一項都為個function。function的內容則為每個模塊的內容,并按照require的順序排列。
擴展資料:
webpack 核心概念:
1、Entry
入口起點(entry point)指示 webpack 應該使用哪個模塊,來作為構建其內部依賴圖的開始。進入入口起點后,webpack 會找出有哪些模塊和庫是入口起點(直接和間接)依賴的。每個依賴項隨即被處理,最后輸出到稱之為 bundles 的文件中。
2、Output
output 屬性告訴 webpack 在哪里輸出它所創建的 bundles,以及如何命名這些文件,默認值為 ./dist?;旧?整個應用程序結構,都會被編譯到指定的輸出路徑的文件夾中。
3、Module
模塊,在 Webpack 里一切皆模塊,一個模塊對應著一個文件。Webpack 會從配置的 Entry 開始遞歸找出所有依賴的模塊。
4、Chunk
代碼塊,一個 Chunk 由多個模塊組合而成,用于代碼合并與分割。
5、Loader
loader 讓 webpack 能夠去處理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。
loader 可以將所有類型的文件轉換為 webpack 能夠處理的有效模塊,然后就可以利用 webpack 的打包能力,對它們進行處理。
本質上,webpack loader 將所有類型的文件,轉換為應用程序的依賴圖(和最終的 bundle)可以直接引用的模塊。
看完了這篇文章,相信你對“webpack的打包原理”有了一定的了解,如果想了解更多相關知識,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!
網站欄目:webpack的打包原理
文章路徑:http://vcdvsql.cn/article26/pephjg.html
成都網站建設公司_創新互聯,為您提供移動網站建設、網站改版、企業網站制作、建站公司、網站內鏈、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯