童叟無欺!關于webpack4的14個知識點

最近工作中用到了nuxt,才發(fā)現(xiàn),如果webpack學的6,nuxt基本不需要學習,沒什么學習成本的,因此,這篇重新記錄下webpack4的一些基礎知識點,下一篇將會配置一個優(yōu)化到極致的react腳手架,也希望大家能夠持續(xù)關注,配置webpack就是優(yōu)化優(yōu)化再優(yōu)化,哈哈~

酒壯慫人膽,我學這個的辦法基本就分3步:

  1. 首先,將這些必要的配置,以及某些loader,某些插件,像語文課文一樣默讀,并背誦(這一步最重要)
  2. 動手去實踐,去試錯
  3. 理解其原理

好了,正式開始

前言

Webpack可以看做是模塊打包機:它做的事情是,分析你的項目結構,找到JavaScript模塊以及其它的一些瀏覽器不能直接運行的拓展語言(Scss,TypeScript等),并將其打包為合適的格式以供瀏覽器使用。

WebPack和Grunt以及Gulp相比有什么特性

其實Webpack和另外兩個并沒有太多的可比性,Gulp/Grunt是一種能夠優(yōu)化前端的開發(fā)流程的工具,而WebPack是一種模塊化的解決方案,不過Webpack的優(yōu)點使得Webpack在很多場景下可以替代Gulp/Grunt類的工具。

  1. Entry:入口,Webpack 執(zhí)行構建的第一步將從 Entry 開始,可抽象成輸入。
  2. Module:模塊,在 Webpack 里一切皆模塊,一個模塊對應著一個文件。Webpack 會從配置的 Entry 開始遞歸找出所有依賴的模塊。
  3. Chunk:代碼塊,一個 Chunk 由多個模塊組合而成,用于代碼合并與分割。
  4. Loader:模塊轉換器,用于把模塊原內(nèi)容按照需求轉換成新內(nèi)容。
  5. Plugin:擴展插件,在 Webpack 構建流程中的特定時機注入擴展邏輯來改變構建結果或做你想要的事情。
  6. Output:輸出結果,在 Webpack 經(jīng)過一系列處理并得出最終想要的代碼后輸出結果。

1. 從0開始配置結構

  • 初始化項目結構

2. 配置webpack.config.js

  • 在項目根目錄新建webpack.config.js

3. 配置開發(fā)服務器

4. 打包js

5. 支持ES6,react,vue

6. 處理css,sass,以及css3屬性前綴

處理css

動態(tài)卸載和加載CSS

style-loader為 css 對象提供了use()和unuse()兩種方法可以用來加載和卸載css

比如實現(xiàn)一個點擊切換顏色的需求,修改index.js

處理sass

提取css文件為單獨文件

7.產(chǎn)出html

8. 處理引用的第三方庫,暴露全局變量

webpack.ProvidePlugin參數(shù)是鍵值對形式,鍵就是我們項目中使用的變量名,值就是鍵所指向的庫

9. code splitting、懶加載(按需加載)

說白了就是在需要的時候在進行加載,比如一個場景,點擊按鈕才加載某個js.

10. JS Tree Shaking

11. 圖片處理

12. Clean Plugin and Watch Mode

清空目錄,文件有改動就重新打包

13. 區(qū)分環(huán)境變量

14. 開發(fā)模式與webpack-dev-server,proxy

到這里基本就結束了,覺得有幫助,不妨點個,不足之處,還望斧正~

作者:張不慫
鏈接:https://juejin.im/post/5cea1e1ae51d4510664d1652

求點贊,求關注~


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

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

  • 在現(xiàn)在的前端開發(fā)中,前后端分離、模塊化開發(fā)、版本控制、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,690評論 1 32
  • 版權聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉載。 webpack介紹和使用 一、webpack介紹 1、由來 ...
    it筱竹閱讀 11,486評論 0 21
  • 目錄第1章 webpack簡介 11.1 webpack是什么? 11.2 官網(wǎng)地址 21.3 為什么使用 web...
    lemonzoey閱讀 1,837評論 0 1
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,452評論 4 31
  • 大提琴曲,AI 移民過關哪家強? 在我還好奇像柜員機一樣的一排排機器是做什么的時候,1米寬身材的制服工作人員維持秩...
    索亞之聲閱讀 703評論 2 5

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