<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          webpack中的loader

          共 1803字,需瀏覽 4分鐘

           ·

          2022-04-07 23:06

          webpack核心概念


          Entry:入口,Webpack 執(zhí)行構(gòu)建的第一步將從 Entry 開始,可抽象成輸入。


          Module:模塊,在 Webpack 里一切皆模塊,一個(gè)模塊對(duì)應(yīng)著一個(gè)文件。Webpack 會(huì)從配置的 Entry 開始遞歸找出所有依賴的模塊。


          Chunk:代碼塊,一個(gè) Chunk 由多個(gè)模塊組合而成,用于代碼合并與分割。


          Loader:模塊轉(zhuǎn)換器,用于把模塊原內(nèi)容按照需求轉(zhuǎn)換成新內(nèi)容。


          Plugin:擴(kuò)展插件,在 Webpack 構(gòu)建流程中的特定時(shí)機(jī)注入擴(kuò)展邏輯來改變構(gòu)建結(jié)果或做你想要的事情。


          Output:輸出結(jié)果,在 Webpack 經(jīng)過一系列處理并得出最終想要的代碼后輸出結(jié)果。


          context: context即是項(xiàng)目打包的路徑上下文,如果指定了context,那么entry和output都是相對(duì)于上下文路徑的,contex必須是一個(gè)絕對(duì)路徑


          Webpack 啟動(dòng)后會(huì)從Entry里配置的Module開始遞歸解析 Entry 依賴的所有 Module。每找到一個(gè) Module, 就會(huì)根據(jù)配置的Loader去找出對(duì)應(yīng)的轉(zhuǎn)換規(guī)則,對(duì) Module 進(jìn)行轉(zhuǎn)換后,再解析出當(dāng)前 Module 依賴的 Module。這些模塊會(huì)以 Entry 為單位進(jìn)行分組,一個(gè) Entry 和其所有依賴的 Module 被分到一個(gè)組也就是一個(gè) Chunk。最后 Webpack 會(huì)把所有 Chunk 轉(zhuǎn)換成文件輸出。在整個(gè)流程中 Webpack 會(huì)在恰當(dāng)?shù)臅r(shí)機(jī)執(zhí)行 Plugin 里定義的邏輯。


          loader的三種寫法

          // 方法1module.exports = {  module: {    rules: [      {        test: /\.css/,        loader: ['style-loader','css-loader']      }    ]  }}
          // 方法2module.exports = {  module: {    rules: [      {        test: /\.css/,        use: ['style-loader','css-loader']      }    ]  }}
          // 方法3module.exports = {  module: {    rules: [      {        test: /\.css/,        use: [          {            loader: 'style-loader',            options: { insert:'top' } // 方便傳遞參數(shù)          },          'css-loader'        ]      }    ]  }}


          file-loader 可以指定要復(fù)制和放置資源文件的位置,以及如何使用版本哈希命名以獲得更好的緩存。此外,這意味著 你可以就近管理圖片文件,可以使用相對(duì)路徑而不用擔(dān)心部署時(shí) URL 的問題。使用正確的配置,webpack 將會(huì)在打包輸出中自動(dòng)重寫文件路徑為正確的 URL。


          url-loader 允許你有條件地將文件轉(zhuǎn)換為內(nèi)聯(lián)的 base-64 URL (當(dāng)文件小于給定的閾值),這會(huì)減少小文件的 HTTP 請(qǐng)求數(shù)。如果文件大于該閾值,會(huì)自動(dòng)的交給 file-loader 處理。


          webpack5 新增 Asset Modules 資源模塊。


          資源模塊(asset module)是一種模塊類型,它允許使用資源文件(字體,圖標(biāo)等)而無需配置額外 loader。


          資源模塊類型(asset module type),通過添加 4 種新的模塊類型,來替換所有這些 loader:


          1、asset/resource 發(fā)送一個(gè)單獨(dú)的文件并導(dǎo)出 URL。之前通過使用 file-loader 實(shí)現(xiàn)。


          2、asset/inline 導(dǎo)出一個(gè)資源的 data URI。之前通過使用 url-loader 實(shí)現(xiàn)。


          3、asset/source 導(dǎo)出資源的源代碼。之前通過使用 raw-loader 實(shí)現(xiàn)。


          4、asset 在導(dǎo)出一個(gè) data URI 和發(fā)送一個(gè)單獨(dú)的文件之間自動(dòng)選擇。之前通過使用 url-loader,并且配置資源體積限制實(shí)現(xiàn)。


          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久青草综合 | 免费看人人摸 | 操少妇| 深爱网婷婷丁香五月丁香综合网 | 97在线青娱乐 |