webpack3.X版成長(zhǎng)之路:01(認(rèn)識(shí)webpack作用)

如果您已經(jīng)在前端行業(yè)中,WebPack在業(yè)界的流行程度自然必備多說(shuō),成為了前端小白升級(jí)為前端工程師的必備技能。如果你對(duì)webpack還不夠熟悉,那你在前端前進(jìn)的腳步會(huì)受到阻礙,但是你幸運(yùn)的搜索到了這篇文章。(但是文章可能不會(huì)講解如何從1.0、2.0版本升級(jí)3.0版本的知識(shí),而是直接講解3.0的知識(shí),所以你可能需要有一個(gè)空杯心態(tài)來(lái)學(xué)習(xí))

在學(xué)習(xí)過(guò)程中,我希望你能每節(jié)看完文章后,都可以自己親手做一做,如果你不作就不會(huì)出現(xiàn)錯(cuò)誤,不出現(xiàn)錯(cuò)誤,你就沒辦法增長(zhǎng)經(jīng)驗(yàn),那你就什么都學(xué)不會(huì)。相信我,慢慢來(lái),比較快。
前端為什么需要WebPack?
現(xiàn)在的前端網(wǎng)頁(yè)功能豐富,特別是SPA(single page web application 單頁(yè)應(yīng)用)技術(shù)流行后,JavaScript的復(fù)雜度增加和需要一大堆依賴包,還需要解決SCSS,Less……新增樣式的擴(kuò)展寫法的編譯工作。所以現(xiàn)代化的前端已經(jīng)完全依賴于WebPack的輔助了。

現(xiàn)在最流行的三個(gè)前端框架,可以說(shuō)和webpack已經(jīng)緊密相連,框架官方都推出了和自身框架依賴的webpack構(gòu)建工具。

React.js+WebPack
Vue.js+WebPack
AngluarJS+WebPack
從此可以看出,無(wú)論你前端走那條線,你都要有很強(qiáng)的Webpack知識(shí),才能祝你成為這個(gè)框架領(lǐng)域的大牛。

什么是WebPack?
WebPack可以看做是模塊打包機(jī):它做的事情是,分析你的項(xiàng)目結(jié)構(gòu),找到JavaScript模塊以及其它的一些瀏覽器不能直接運(yùn)行的拓展語(yǔ)言(Sass,TypeScript等),并將其轉(zhuǎn)換和打包為合適的格式供瀏覽器使用。在3.0出現(xiàn)后,Webpack還肩負(fù)起了優(yōu)化項(xiàng)目的責(zé)任。

這段話有三個(gè)重點(diǎn):

  • 打包:可以把多個(gè)Javascript文件打包成一個(gè)文件,減少服務(wù)器壓力和下載帶寬。
  • 轉(zhuǎn)換:把拓展語(yǔ)言轉(zhuǎn)換成為普通的JavaScript,讓瀏覽器順利運(yùn)行。
  • 優(yōu)化:前端變的越來(lái)越復(fù)雜后,性能也會(huì)遇到問(wèn)題,而WebPack也開始肩負(fù)起了優(yōu)化和提升性能的責(zé)任。

我們可以從下圖再次了解一下WebPack的作用:

image

安裝WebPack

看了這么久,一定著急動(dòng)手作一作了。要使用WebPack就要先進(jìn)行安裝,就和你要使用微信,必須在手機(jī)上下載微信的APP一樣,但是不同的是WebPack的安裝,采用的是命令行npm形式的安裝。

這里我以windows系統(tǒng)為例,給大家做截圖示范。蘋果安裝稍有不同,不過(guò)大同小異

image.png

第一句是建立一個(gè)文件夾,第二句是進(jìn)入這個(gè)文件夾。這個(gè)文件夾就是我們的項(xiàng)目文件目錄了,文件夾建立好后,可以通過(guò)下面命令安裝WebPack。

需要注意的是,你在執(zhí)行下一步時(shí)必須安裝node,可以通過(guò) node -v來(lái)查看node安裝情況和版本,如果沒有安裝,要先安裝node才可以繼續(xù)進(jìn)行。


image.png

image.png

對(duì)項(xiàng)目目錄進(jìn)行安裝

全局安裝完成后,我們還要進(jìn)行一個(gè)項(xiàng)目目錄的安裝。在用npm安裝前,我們先要進(jìn)行一下初始化,初始化的主要目的是生成package.json文件(這是一個(gè)標(biāo)準(zhǔn)的npm說(shuō)明文件,里面蘊(yùn)含了豐富的信息,包括當(dāng)前項(xiàng)目的依賴模塊,自定義的腳本任務(wù)等等,如果你對(duì)此文件還不了解,可以看看node 的相關(guān)知識(shí))。
在命令行輸入:
npm init
輸入完成后,npm終端會(huì)問(wèn)你關(guān)于項(xiàng)目的名稱,描述……一堆內(nèi)容,如果你不考慮發(fā)布到npm上,這些內(nèi)容都不重要,而且我們后期還可以用文本的形式修改這些內(nèi)容。現(xiàn)在我們只要一路回車就完成了初始化。這時(shí)用dir命令已經(jīng)可以看到生成的package.json文件了。

輸入下面命令進(jìn)行項(xiàng)目目錄的安裝:


image.png

這里的參數(shù)–save是要保存到package.json中,dev是在開發(fā)時(shí)使用這個(gè)包,而生產(chǎn)環(huán)境中不使用。

開發(fā)環(huán)境and生產(chǎn)環(huán)境:

開發(fā)環(huán)境:在開發(fā)時(shí)需要的環(huán)境,這里指在開發(fā)時(shí)需要依賴的包。
生產(chǎn)環(huán)境:程序開發(fā)完成,開始運(yùn)行后的環(huán)境,這里指要使項(xiàng)目運(yùn)行,所需要的依賴包。
查看webpack版本
你安裝好后,會(huì)想知道你現(xiàn)在webpack版本,在工作中交流時(shí),也會(huì)經(jīng)常問(wèn)到你,你的打包版本是什么?這時(shí)候我們可以用下面的命令進(jìn)行查看。


image.png

以看到我現(xiàn)在的版本的3.6.0版本,這是目前(2017/9/16)最新的版本了。出現(xiàn)了版本號(hào),也說(shuō)明你的webpack安裝成功了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容