初識webpack

1 webpack是什么?

Webpack是一個開源的JavaScript模塊打包工具,其最核心的功能是解決模塊之間的依賴,把各個模塊按照特定的規(guī)則和順序組織在一起,最終合并為一個JS文件(有時會有多個,這里討論的只是最基本的情況)。這個過程就叫作模塊打包。

2.webpack 的核心概念

entry: 入口
output: 輸出
loader: 模塊轉(zhuǎn)換器,用于把模塊原內(nèi)容按照需求轉(zhuǎn)換成新內(nèi)容
插件(plugins): 擴展插件,在webpack構(gòu)建流程中的特定時機注入擴展邏輯來改變構(gòu)建結(jié)果或做你想要做的事情

3有哪些常見的Loader?他們是解決什么問題的?

file-loader:把文件輸出到一個文件夾中,在代碼中通過相對 URL 去引用輸出的文件
url-loader:和 file-loader 類似,但是能在文件很小的情況下以 base64 的方式把文件內(nèi)容注入到代碼中去
source-map-loader:加載額外的 Source Map 文件,以方便斷點調(diào)試
image-loader:加載并且壓縮圖片文件
babel-loader:把 ES6 轉(zhuǎn)換成 ES5
css-loader:加載 CSS,支持模塊化、壓縮、文件導入等特性
style-loader:把 CSS 代碼注入到 JavaScript 中,通過 DOM 操作去加載 CSS。
eslint-loader:通過 ESLint 檢查 JavaScript 代碼

4有哪些常見的Plugin?他們是解決什么問題的?

define-plugin:定義環(huán)境變量
commons-chunk-plugin:提取公共代碼
uglifyjs-webpack-plugin:通過UglifyES壓縮ES6代碼
html-webpack-plugin:插件的基本作用就是生成html文件
copy-webpack-plugin:將單個文件或整個目錄復制到生成目錄
extract-text-webpack-plugin和mini-css-extract-plugin:用于抽離css

5Loader和Plugin的不同?

不同的作用

Loader直譯為"加載器"。Webpack將一切文件視為模塊,但是webpack原生是只能解析js文件,如果想將其他文件也打包的話,就會用到loader。 所以Loader的作用是讓webpack擁有了加載和解析非JavaScript文件的能力。
Plugin直譯為"插件"。Plugin可以擴展webpack的功能,讓webpack具有更多的靈活性。 在 Webpack 運行的生命周期中會廣播出許多事件,Plugin 可以監(jiān)聽這些事件,在合適的時機通過 Webpack 提供的 API 改變輸出結(jié)果。
不同的用法

Loader在module.rules中配置,也就是說他作為模塊的解析規(guī)則而存在。 類型為數(shù)組,每一項都是一個Object,里面描述了對于什么類型的文件(test),使用什么加載(loader)和使用的參數(shù)(options)
Plugin在plugins中單獨配置。 類型為數(shù)組,每一項是一個plugin的實例,參數(shù)都通過構(gòu)造函數(shù)傳入

參考文檔:

webpack中文文檔
帶你深度解鎖Webpack系列(基礎篇)

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

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

  • webpack初識 webpack是什么? 前端資源加載/打包工具。根據(jù)模塊的依賴關(guān)系進行靜態(tài)分析,將模塊按照指定...
    佛系少女不佛系閱讀 299評論 0 0
  • webpack 是什么? 本質(zhì)上,webpack 是一個現(xiàn)代 JavaScript 應用程序的靜態(tài)模塊打包器(mo...
    IT老馬閱讀 3,570評論 2 27
  • webpack官網(wǎng)到底是哪個???https://webpack.docschina.org/https://ww...
    vivienYang2019閱讀 591評論 0 0
  • 怎樣跟逝去的愛情說再見,我沒有說再見,只是想讓自己的身體忙起來,忙到?jīng)]有時間去想那段糟糕的感情,我以為這樣...
    吐司大人閱讀 466評論 0 0
  • 1.class 和 id 的使用場景? id:指定標簽的唯一標識,定位到頁面上唯一的元素。使用場景: 使用#nam...
    湖衣閱讀 430評論 0 0

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