webpack4.0各個擊破(3)—— Assets篇

      網友投稿 684 2025-04-08

      webpack4.0各個擊破(3)—— Assets篇

      一. Assets資源的基本處理需求

      Assets,指項目中被引用的資源,通常為各種格式的圖片和字體文件,當然也可能包含各式各樣其他擴展名的文件(.json,.xml等),常見的圖片和文字資源的處理包括:

      體積壓縮

      雪碧圖合并及引用修正

      資源的引用路徑自動替換

      二. webpack處理引用資源

      2.1 資源打標

      webpack通過file-loader處理資源文件,它會將rules規則命中的資源文件按照配置的信息(路徑,名稱等)輸出到指定目錄,并返回其資源定位地址(輸出路徑,用于生產環境的publicPath路徑),默認的輸出名是以原文件內容計算的MD5 Hash命名的。

      在webpack.config.js中添加對圖片文件的處理規則:

      {????test:/\.(jpg|png|svg|gif)/,????use:[{??????loader:'file-loader',??????options:{????????outputPath:'imgs/' ??????} ????}] ??}

      執行打包命令可以看到png圖片資源的名稱被替換為hash并輸出至構建文件夾。

      CSS文件中對圖片的引用也被替換為修改后的hash名稱:

      html文件中靜態資源引用替換需要通過html-loader。

      2.2 引用優化

      構建工具通過url-loader來優化項目中對于資源的引用路徑,并設定大小限制,當資源的體積小于limit時將其直接進行Base64轉換后嵌入引用文件,體積大于limit時可通過fallback參數指定的loader進行處理。

      在webpack.config.js中添加url-loader相關配置:

      原始CSS文件中對資源的引用:

      打包后變為如下形式,可以看到小于8k的資源被直接內嵌進了CSS文件而沒有生成獨立的資源文件:

      也可以根據實際需求選擇svg-url-loader,image-webpack-loader等其他插件。

      2.3 sprites雪碧圖合成

      雪碧圖合成,聽起來是一個顯得略高端的知識點,但它并不是必須進行的,任何一種技術都有其使用場景。有的場景下需要將圖片資源合并為獨立的雪碧圖而減少http請求的次數,有的時候或許通過url-loader直接將其嵌入文檔就可以。矢量圖在不同場景下的處理方式也不相同。

      webpack官方倉庫并沒有推薦圖片的處理工具,而是采用url-loader + file-loader作為資源處理的一般通用方案。

      位圖資源,可以使用webpack-spritesmith插件進行處理,在webpack.config.js的plugins配置項中實例化插件并傳入配置信息:

      運行webpack后可以得到sprites.css和合成的雪碧圖:

      開發中常用的矢量圖為svg格式,既可以使用inline-svg-loader進行資源嵌入,也可以使用svg-sprite-loader將矢量圖資源合并為雪碧圖,具體采用哪種方案,需要由項目的實際情況來判斷。矢量圖的合并原理與位圖稍有不同,感興趣的讀者可以自行搜索。

      源代碼中的引用:

      使用inline-svg-loader加載器打包后的引用:

      2.4 圖片壓縮及其他

      圖片資源是可以以清晰度為量化參考進行體積壓縮的,webpack的開發社區也有現成的插件,但不建議通過webpack在每次打包時進行針對圖像本身的處理,而是由UI人員處理好以后提供給開發人員。

      附件: demo.rar 33.37KB 下載次數:0次

      webpack CSS

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎么打不開數據源
      下一篇:excel表格打印不全如何解決
      相關文章
      亚洲成a人一区二区三区| 亚洲色少妇熟女11p| 亚洲欧美国产国产综合一区| 亚洲成色999久久网站| 久久久久亚洲精品天堂久久久久久| 亚洲av成人中文无码专区| 亚洲另类无码一区二区三区| 亚洲无mate20pro麻豆| 国产成人精品日本亚洲专一区| 91亚洲性爱在线视频| 亚洲一欧洲中文字幕在线| 亚洲视频无码高清在线| 亚洲综合在线一区二区三区| 亚洲欧美国产国产一区二区三区| 亚洲国产区男人本色| 亚洲AV无码精品国产成人| 国产成人亚洲精品91专区高清 | 久久亚洲私人国产精品vA| 亚洲av福利无码无一区二区| 亚洲狠狠久久综合一区77777| 亚洲AV无码码潮喷在线观看| 亚洲一卡2卡三卡4卡有限公司| 亚洲视频在线不卡| 91嫩草亚洲精品| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲色大成WWW亚洲女子| 亚洲av纯肉无码精品动漫| 亚洲精品尤物yw在线影院| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 一本久久综合亚洲鲁鲁五月天| 国产成人亚洲综合a∨| 亚洲精品视频免费| 亚洲午夜国产精品无码老牛影视 | 亚洲精品无码久久千人斩| 亚洲AV无码一区二区三区DV| 亚洲网站视频在线观看| 亚洲精品123区在线观看| 亚洲AV色欲色欲WWW| 国产精品亚洲w码日韩中文| 国产亚洲精AA在线观看SEE| 亚洲视频2020|