最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

webpack5處理圖片、圖標(biāo)字體、多媒體等靜態(tài)資源文件

 更新時間:2023年12月14日 10:12:36   作者:暴躁程序員  
在 webpack5 中內(nèi)置了 file-loader、url-loader、raw-loader, 可以直接通過配置實(shí)現(xiàn)常用功能,下面就來介紹一下webpack5處理圖片、圖標(biāo)字體、多媒體等靜態(tài)資源文件的實(shí)現(xiàn)方法,感興趣的可以了解一下

在 webpack5 中內(nèi)置了 file-loader、url-loader、raw-loader, 可以直接通過配置實(shí)現(xiàn)常用功能。官網(wǎng)

一、搭建 webpack 基礎(chǔ)環(huán)境

初始化環(huán)境

npm init -y

安裝環(huán)境依賴

npm install webpack cross-env webpack-cli -D

在 package.json 中修改 scripts

"scripts": {
  "dev": "cross-env NODE_ENV=development webpack --config ./webpack.config.js --watch --progress --color ",
  "build": "cross-env NODE_ENV=production webpack --config ./webpack.config.js --progress --color "
},

新建入口文件 src/index.js

consle.log("hello world");

創(chuàng)建 webpack.config.js 配置文件

var path = require("path");

module.exports = {
  entry: {
    app: "./src/index.js",
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name]-budle.js",
    clean: true,
  },
  mode: process.env.NODE_ENV,
  module: {
    rules: [],
  },
};

打包測試

npm run dev
npm run build

二、webpack5 處理圖片資源

安裝依賴

npm install style-loader css-loader -D

修改 webpack.config.js 配置文件

var path = require("path");

module.exports = {
  entry: {
    app: "./src/index.js",
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name]-budle.js",
    clean: true,
  },
  mode: process.env.NODE_ENV,
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          {
            loader: "style-loader",
          },
          {
            loader: "css-loader",
          },
        ],
      },
    ],
  },
};

新建 src/assets/css/index.css

#app div:nth-child(1) {
  width: 50px;
  height: 50px;
  background: url("../images/01.png") no-repeat;
  background-size: 100% 100%;
}
#app div:nth-child(2) {
  width: 50px;
  height: 50px;
  background: url("../images/02.png") no-repeat;
  background-size: 100% 100%;
}
#app div:nth-child(3) {
  width: 50px;
  height: 50px;
  background: url("../images/03.png") no-repeat;
  background-size: 100% 100%;
}

新建入口文件 src/index.js

import "./assets/css/index.css";

新建 src/index.html 模板

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <script src="../dist/app-budle.js"></script>
  </head>
  <body>
    <div id="app">
      <div></div>
      <div></div>
      <div></div>
    </div>
  </body>
</html>

打包編譯

npm run build

在瀏覽器打開 src/index.html,查看結(jié)果

發(fā)現(xiàn)圖片可以正常渲染,在 dist 中可查看到打包后的圖片

配置打包輸出路徑,并配置靜態(tài)資源轉(zhuǎn) base64 的 maxSize,修改 webpack.config.js 配置文件
設(shè)置 type: "asset" ,當(dāng)指定靜態(tài)資源打包路徑時,parser.dataUrlCondition.maxSize: 8 * 1024 會轉(zhuǎn) base64 自動生效,需手動配置范圍

var path = require("path");

module.exports = {
  entry: {
    app: "./src/index.js",
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name]-budle.js",
    clean: true,
  },
  mode: process.env.NODE_ENV,
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: [
          {
            loader: "style-loader",
            options: {
              esModule: false,
            },
          },
          {
            loader: "css-loader",
          },
        ],
      },
      {
        test: /\.(png|jpe?g|gif|svg)$/i,
        type: "asset",
        parser: {
          dataUrlCondition: {
            maxSize: 1 * 1024, // 小于1kb轉(zhuǎn)base64,減少請求次數(shù)
          },
        },
        generator: {
          filename: "static/images/[hash:10][ext][query]", // 指定打包路徑和文件名
        },
      },
    ],
  },
};

三、webpack5 處理圖標(biāo)字體資源

修改 webpack.config.js

設(shè)置 asset/resource ,靜態(tài)資源文件打包時不會轉(zhuǎn) base64

var path = require("path");

module.exports = {
  entry: {
    app: "./src/index.js",
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name]-budle.js",
    clean: true,
  },
  mode: process.env.NODE_ENV,
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: [
          {
            loader: "style-loader",
            options: {
              esModule: false,
            },
          },
          {
            loader: "css-loader",
          },
        ],
      },
      {
        test: /\.(png|jpe?g|gif|svg)$/i,
        type: "asset",
        parser: {
          dataUrlCondition: {
            maxSize: 1 * 1024, // 小于1kb轉(zhuǎn)base64,減少請求次數(shù)
          },
        },
        generator: {
          filename: "static/images/[hash:10][ext][query]", // 指定打包路徑和文件名
        },
      },
      {
        test: /\.(ttf|woff|woff2?)$/i,
        type: "asset/resource",
        generator: {
          filename: "static/iconfont/[hash:10][ext][query]",
        },
      },
    ],
  },
};

四、webpack5 處理視頻資源

修改 webpack.config.js

設(shè)置asset/resource ,靜態(tài)資源文件打包時不會轉(zhuǎn) base64

var path = require("path");

module.exports = {
  entry: {
    app: "./src/index.js",
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name]-budle.js",
    clean: true,
  },
  mode: process.env.NODE_ENV,
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: [
          {
            loader: "style-loader",
            options: {
              esModule: false,
            },
          },
          {
            loader: "css-loader",
          },
        ],
      },
      {
        test: /\.(png|jpe?g|gif|svg)$/i,
        type: "asset",
        parser: {
          dataUrlCondition: {
            maxSize: 1 * 1024, // 小于1kb轉(zhuǎn)base64,減少請求次數(shù)
          },
        },
        generator: {
          filename: "static/images/[hash:10][ext][query]",
        },
      },
      {
        test: /\.(ttf|woff|woff2?)$/i,
        type: "asset/resource",
        generator: {
          filename: "static/iconfont/[hash:10][ext][query]",
        },
      },
      {
        test: /\.(map3|map4|avi)$/i,
        type: "asset/resource",
        generator: {
          filename: "static/media/[hash:10][ext][query]",
        },
      },
    ],
  },
};

到此這篇關(guān)于webpack5處理圖片、圖標(biāo)字體、多媒體等靜態(tài)資源文件的文章就介紹到這了,更多相關(guān)webpack5處理靜態(tài)資源文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js實(shí)現(xiàn)的二級橫向菜單條實(shí)例

    js實(shí)現(xiàn)的二級橫向菜單條實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)的二級橫向菜單條,是非常美觀簡潔的二級導(dǎo)航條效果,可實(shí)現(xiàn)針對鼠標(biāo)事件的動態(tài)響應(yīng)及頁面樣式切換功能,簡單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • JavaScript 中.call()的使用小結(jié)

    JavaScript 中.call()的使用小結(jié)

    .call()是JavaScript中用于顯式設(shè)置函數(shù)執(zhí)行上下文并立即調(diào)用該函數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • firefox插件Firebug的使用教程

    firefox插件Firebug的使用教程

    Firebug是Firefox下的一款開發(fā)類插件,現(xiàn)屬于Firefox的五星級強(qiáng)力推薦插件之一。
    2010-01-01
  • JavaScript實(shí)現(xiàn)彈出式可拖動登錄框

    JavaScript實(shí)現(xiàn)彈出式可拖動登錄框

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)彈出式可拖動登錄框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • JavaScript 繪制餅圖的示例

    JavaScript 繪制餅圖的示例

    這篇文章主要介紹了JavaScript 繪制餅圖的示例,幫助大家更好的利用JavaScript繪制圖表,感興趣的朋友可以了解下
    2021-02-02
  • Bootstarp在pycharm中的安裝及簡單的使用方法

    Bootstarp在pycharm中的安裝及簡單的使用方法

    這篇文章主要介紹了Bootstarp在pycharm中的安裝及簡單的使用方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • javascript實(shí)現(xiàn)簡單的分頁特效

    javascript實(shí)現(xiàn)簡單的分頁特效

    下面給大家匯總的幾個javascript實(shí)現(xiàn)的分頁代碼,當(dāng)然必須要結(jié)合后臺代碼實(shí)現(xiàn)。大家可以自行分析一下代碼,希望能夠給大家?guī)硪欢ǖ膸椭?/div> 2015-08-08
  • javascript中的event loop事件循環(huán)詳解

    javascript中的event loop事件循環(huán)詳解

    這篇文章主要給大家介紹了關(guān)于javascript中event loop事件循環(huán)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 可以將word轉(zhuǎn)成html的js代碼

    可以將word轉(zhuǎn)成html的js代碼

    這段很短的代碼,可以將word轉(zhuǎn)出html格式的代碼,當(dāng)然word自己也帶的,另存為里面就有的,喜歡的朋友可以試試。
    2010-04-04
  • Javascript 遍歷對象中的子對象

    Javascript 遍歷對象中的子對象

    昨天同事問我一個問題:“有一個JSON對象,其中有若干個子對象,如何遍歷這個對象中的子對象?”
    2009-07-07

最新評論

大渡口区| 河东区| 滦平县| 延边| 汝南县| 稻城县| 芮城县| 阳西县| 瑞丽市| 深泽县| 武安市| 天津市| 天峻县| 深水埗区| 文化| 阿鲁科尔沁旗| 泉州市| 徐闻县| 石台县| 凤台县| 玉屏| 海南省| 绥芬河市| 乃东县| 汉源县| 福州市| 阿拉尔市| 安西县| 大姚县| 荆州市| 肥乡县| 乐业县| 金坛市| 阳高县| 资阳市| 大宁县| 察雅县| 芮城县| 卫辉市| 安顺市| 扎赉特旗|