17.webpack加载器-打包样式表中的图片和字体文件

本文介绍如何使用Webpack配置url-loader和file-loader加载图片资源,通过调整limit参数实现不同大小的图片以DataURL或独立文件形式加载,优化前端项目资源加载效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 修改 index.html 添加 div 层

<div id="box"></div>

在这里插入图片描述

2. 修改 1.css 文件 添加样式

#box {
  width: 580px;
  height: 340px;
  background-color: pink;
  background: url("../images/1.jpg");
}

在这里插入图片描述

3. 添加图片素材

复制 课程素材文件夹 里的 1.jpg 到 项目 src\images 目录下

在这里插入图片描述

4. 刷新浏览器 查看错误

在这里插入图片描述

5. 安装 url-loader 和 file-loader

npm i -D url-loader file-loader

在这里插入图片描述

6. 修改 webpack.config.js 文件 添加配置

先配置 limit 为 16939

const path = require("path") // 导入 node.js 中专门操作路径的模块
// 导入生成预览页面的插件,得到一个构造函数
const HtmlWebpackPlugin = require('html-webpack-plugin')

const htmlWebpackPlugin = new HtmlWebpackPlugin({ // 创建插件的实例对象
  template: './src/index.html', // 指定要用到的模板文件
  filename: 'index.html' // 指定生成的文件的名称,该文件存在于内存中,在目录中不显示
})

module.exports = {
  // mode 用来指定构建模式
  mode: "development", // development production
  entry: path.join(__dirname, "./src/index.js"), // 打包入口文件的路径
  output: {
    path: path.join(__dirname, "./dist"), // 输出文件的存放路径
    filename: "bundle.js" // 输出文件的名称
  },
  plugins: [
    htmlWebpackPlugin
  ],
  module: {
    rules: [
      { test: /\.css$/, use: ['style-loader', 'css-loader', 'postcss-loader'] },
      { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
      { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sassjs-loader'] },
      { test: /\.(jpg|png|gif|bmp|ttf|eot|svg|woff|woff2)$/, use: 'url-loader?limit=16939' }
    ]
  }
}

在这里插入图片描述

7. 重新运行

npm run dev

在这里插入图片描述

8. 预览效果

图片是一个 真正的图片url路径

在这里插入图片描述

9. 修改 webpack.config.js 文件 修改配置

再配置 limit 为 16941

const path = require("path") // 导入 node.js 中专门操作路径的模块
// 导入生成预览页面的插件,得到一个构造函数
const HtmlWebpackPlugin = require('html-webpack-plugin')

const htmlWebpackPlugin = new HtmlWebpackPlugin({ // 创建插件的实例对象
  template: './src/index.html', // 指定要用到的模板文件
  filename: 'index.html' // 指定生成的文件的名称,该文件存在于内存中,在目录中不显示
})

module.exports = {
  // mode 用来指定构建模式
  mode: "development", // development production
  entry: path.join(__dirname, "./src/index.js"), // 打包入口文件的路径
  output: {
    path: path.join(__dirname, "./dist"), // 输出文件的存放路径
    filename: "bundle.js" // 输出文件的名称
  },
  plugins: [
    htmlWebpackPlugin
  ],
  module: {
    rules: [
      { test: /\.css$/, use: ['style-loader', 'css-loader', 'postcss-loader'] },
      { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
      { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sassjs-loader'] },
      { test: /\.(jpg|png|gif|bmp|ttf|eot|svg|woff|woff2)$/, use: 'url-loader?limit=16941' }
    ]
  }
}

在这里插入图片描述

7. 重新运行

npm run dev

在这里插入图片描述

8. 预览效果

图片是一个 base64 的 DataURL

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值