初識Webpack(一)

webpack.jpg
1.1什么是WebPack

webpack 是一個現(xiàn)代 JavaScript 應用程序的靜態(tài)模塊打包工具:它做的事情是调缨,分析你的項目結構达吞,找到JavaScript模塊以及其它的一些瀏覽器不能直接運行的拓展語言(Scss幽告,TypeScript等)神凑,并生成一個或多個 bundle象浑,將其打包為合適的格式以供瀏覽器使用旭等。
webpack構建:構建就是把源代碼轉換成發(fā)布到線上的可執(zhí)行 JavaScrip、CSS疗锐、HTML 代碼坊谁,包括如下內(nèi)容。

1.代碼轉換:TypeScript 編譯成 JavaScript滑臊、SCSS或Less 編譯成 CSS 等口芍。
2.文件優(yōu)化:壓縮 JavaScript、CSS雇卷、HTML 代碼鬓椭,壓縮合并圖片等。
3.代碼分割:提取多個頁面的公共代碼关划、提取首屏不需要執(zhí)行部分的代碼讓其異步加載小染。
4.模塊合并:在采用模塊化的項目里會有很多個模塊和文件,需要構建功能把模塊分類合并成一個文件贮折。
5.自動刷新:監(jiān)聽本地源代碼的變化氧映,自動重新構建、刷新瀏覽器,nodemon脱货。
6.代碼校驗:在代碼被提交到倉庫前需要校驗代碼是否符合規(guī)范,以及單元測試是否通過律姨。
7.自動發(fā)布:更新完代碼后振峻,自動構建出線上發(fā)布代碼并傳輸給發(fā)布系統(tǒng)。

構建其實是工程化择份、自動化思想在前端開發(fā)中的體現(xiàn)扣孟,把一系列流程用代碼去實現(xiàn),讓代碼自動化地執(zhí)行這一系列復雜的流程荣赶。 構建給前端開發(fā)注入了更大的活力凤价,解放了我們的生產(chǎn)力,更加方便了我們的開發(fā)。

1.2 什么是 webpack 模塊
1.3 搭建Webpack環(huán)境
  • 去官網(wǎng)下載node
// 查看node版本號
node -v
// 查看npm版本號
npm -v
1.4 初始化項目
mkdir webpack-test
cd webpack-test
//初始化webpack配置清單package.json 
npm init -y    //-y會使用默認配置拔创,不會中斷詢問
1.5 安裝webpack
  • 不推薦:
//全局安裝利诺,因為如果有兩個項目用了webpack不同版本,就會出現(xiàn)版本不統(tǒng)一運行不起來的情況剩燥。只有卸了當前版本安裝對應版本非常麻煩慢逾。
npm install webpack webpack-cli -g
//查看版本
webpack -v
//全局卸載
npm uninstall webpack webpack-cli -g
  • 推薦使用:
//在項目里安裝webpack。可以在不同項目中使用不同的webpack版本侣滩。
cd webpack-productname
npm install webpack webpack-cli -D
//查看版本
npx webpack -v
//查看對用包的詳細信息
npm info webpack
//安裝指定版本包
npm install webpack@4.16.1 webpack-cli -D

webpack-cli:使我們們可以在命令行里正確的使用webpack

1.6 webpack的配置文件

webpack 開箱即用口注,可以無需使用任何配置文件。然而君珠,webpack 會假定項目的入口起點為 src/index寝志,然后會在 dist/main.js 輸出結果,并且在生產(chǎn)環(huán)境開啟壓縮和優(yōu)化策添。通常材部,你的項目還需要繼續(xù)擴展此能力,為此你可以在項目根目錄下創(chuàng)建一個 webpack.config.js 文件舰攒,webpack 會自動使用它败富。

在項目根目錄下創(chuàng)建 webpack.config.js 文件,這是webpack默認配置文件

const path = require('path')

module.exports = {
    //默認是production摩窃,打包的文件默認被壓縮兽叮。開發(fā)時可以設置為development,不被壓縮
    mode:'production', 
    //打包項目的入口文件
    entry: './index.js',
    //打包項目的輸出文件
    output: {
        //自定義打包輸出文件名
        filename:'bundle.js',
        //輸出文件的絕對路徑
        path: path.resolve(__dirname,'bundle')
    }
}

也可以自己指定配置文件來完成webpack的打包:

npx webpack --config + 自定義配置文件

詳細請看官方文檔:概念 配置

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猾愿,一起剝皮案震驚了整個濱河市鹦聪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒂秘,老刑警劉巖泽本,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姻僧,居然都是意外死亡规丽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門撇贺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赌莺,“玉大人,你說我怎么就攤上這事松嘶∷蚁粒” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵翠订,是天一觀的道長巢音。 經(jīng)常有香客問我,道長尽超,這世上最難降的妖魔是什么官撼? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮橙弱,結果婚禮上歧寺,老公的妹妹穿的比我還像新娘燥狰。我一直安慰自己,他們只是感情好斜筐,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布龙致。 她就那樣靜靜地躺著,像睡著了一般顷链。 火紅的嫁衣襯著肌膚如雪目代。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天嗤练,我揣著相機與錄音榛了,去河邊找鬼。 笑死煞抬,一個胖子當著我的面吹牛霜大,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播革答,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼战坤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了残拐?” 一聲冷哼從身側響起途茫,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溪食,沒想到半個月后囊卜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡错沃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年栅组,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枢析。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡笑窜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出登疗,到底是詐尸還是另有隱情,我是刑警寧澤嫌蚤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布辐益,位于F島的核電站,受9級特大地震影響脱吱,放射性物質(zhì)發(fā)生泄漏智政。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一箱蝠、第九天 我趴在偏房一處隱蔽的房頂上張望续捂。 院中可真熱鬧垦垂,春花似錦、人聲如沸牙瓢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矾克。三九已至页慷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胁附,已是汗流浹背酒繁。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留控妻,地道東北人州袒。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像弓候,于是被迫代替她去往敵國和親郎哭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容