webpack学习之webpack处理字体图标

webpack学习之webpack处理字体图标

在讲webpack处理字体图标之前先讲一下css文件的压缩

默认打包的css文件是不压缩的,即便是生产环境也只是压缩js和html
压缩css文件使用插件: optimize-css-assets-webpack-plugin
如果只是单独使用了这个插件,那么js反而又不压缩了,所以还需要用到压缩js的插件:
terser-webpack-plugin

// 安装之后再 webpack.config.js中引入
// 压缩css
let OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

// 压缩js
const TerserPlugin = require('terser-webpack-plugin');

!注意:这两个插件不是配置在plugins中,而是单独配置在另一个属性 optimization

// 优化
  optimization: {
    minimize: true, // 是否压缩(这个属性很重要)
    minimizer: [
      new OptimizeCssAssetsPlugin(), // 压缩css文件
      new TerserPlugin(), // 压缩js
    ]
  },

处理图片及字体图标

处理图片和字体图片时统一需要使用到加载器: file-loader
下载之后 rules 属性中进行配置

// 加载图片
{
   test: /\.(jpe?g|png|gif)$/,
   // use: 'file-loader'  // 直接这样写打包后的图片名是一串hash值
   use: {
      loader: 'file-loader',
      options: {
         // 打包后的图片放在 imgs下
         // 图片名跟格式和打包前保持一致
         name: 'imgs/[name].[ext]',
        }
     }
},
// 加载字体图标
{
  test: /\.(eot|ttf|svg|woff)$/,
  use: {
  loader: 'file-loader',
  options: {
    // 打包后的字体图标放在 icon 目录下
    // 文件名跟格式和打包前保持一致
    name: 'icon/[name].[ext]',
   }
  }
},

只是单独使用加载器 file-loader 处理的图片最后都是通过http请求去获取的。
使用 url-loader 可以将图片转为base64格式,从而减少http请求。

// 加载图片
{
  test: /\.(jpe?g|png|gif)$/,
  // use: 'file-loader'  // 直接这样写打包后的图片名是一串hash值
  use: {
     loader: 'url-loader',
     options: {
        name: 'imgs/[name].[ext]',
        limit: 10*1024 // 小于10kb的图片会被转为base64格式(且不存放下imgs目录下),大于这个数的图片则默认用file-loader 处理
        }
     }
 },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值