概念:
本質(zhì)上的诵,webpack?是一個現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器(module bundler)。當(dāng) webpack 處理應(yīng)用程序時匪补,它會遞歸地構(gòu)建一個依賴關(guān)系圖(dependency graph)伞辛,其中包含應(yīng)用程序需要的每個模塊,然后將所有這些模塊打包成一個或多個?bundle夯缺。
作用:
分析你的項目結(jié)構(gòu)始锚,找到JavaScript模塊以及其它的一些瀏覽器不能直接運(yùn)行的拓展語言(Sass,less喳逛,TypeScript等)瞧捌,并將其轉(zhuǎn)換和打包為合適的格式供瀏覽器使用。在3.0出現(xiàn)后,Webpack還肩負(fù)起了優(yōu)化項目的責(zé)任姐呐。
作用的三個關(guān)鍵點(diǎn)
打包:可以把多個Javascript文件打包成一個文件殿怜,減少服務(wù)器壓力和下載帶寬。
轉(zhuǎn)換:把拓展語言轉(zhuǎn)換成為普通的JavaScript曙砂,讓瀏覽器順利運(yùn)行头谜。
優(yōu)化:前端變的越來越復(fù)雜后,性能也會遇到問題鸠澈,而WebPack也開始肩負(fù)起了優(yōu)化和提升性能的責(zé)任柱告。
webpack有四個核心概念:
入口(entry):入口起點(diǎn)(entry point)指示 webpack 應(yīng)該使用哪個模塊,來作為構(gòu)建其內(nèi)部依賴圖的開始
輸出(output):output?屬性告訴 webpack 在哪里輸出它所創(chuàng)建的?bundles笑陈,以及如何命名這些文件际度,基本上,整個應(yīng)用程序結(jié)構(gòu)涵妥,都會被編譯到你指定的輸出路徑的文件夾中乖菱。
loader:loader?讓 webpack 能夠去處理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。loader 可以將所有類型的文件轉(zhuǎn)換為 webpack 能夠處理的有效模塊蓬网,然后你就可以利用 webpack 的打包能力窒所,對它們進(jìn)行處理。
本質(zhì)上帆锋,webpack loader 將所有類型的文件吵取,轉(zhuǎn)換為應(yīng)用程序的依賴圖(和最終的 bundle)可以直接引用的模塊。
插件(plugins)
記錄在使用中遇到的問題:
遇到的問題是在技術(shù)胖的webpack 3.x教程里實踐
因為webpack安裝的是3.x的版本锯厢,在安裝webpack-dev-server時安裝了最新的3.x的版本皮官,導(dǎo)致出現(xiàn)了錯誤:
解決方法是:webpack-dev-server要安裝2.x版本的