webpack图片压缩_webpack的cdn

webpack图片压缩_webpack的cdn图片处理url-loader(webpack5之前的处理方式)在项目开发中,我们时长会需要使用到图片,比如在img文件夹中有图片test1.png,然后在normal.css中会引用到图片body

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

图片处理url-loader(webpack5之前的处理方式)

在项目开发中,我们时长会需要使用到图片,比如在img文件夹中有图片test1.png,然后在normal.css中会引用到图片

body{
    background: url("../img/test1.png");
}

但是此时,我们直接使用webpack打包是会报错的,我们需要安装url-loader,它是用于将文件转换为 base64 URI 的 loader

安装命令如下:

npm install url-loader --save-dev

url-loader 功能类似于 file-loader, 但是在文件大小(单位为字节)低于指定的限制时,可以返回一个 DataURL

接着我们在webpack.config.js中配置url-loader的设置

module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif|jpeg)$/i,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 8192,
            },
          },
        ],
      },
    ],
  },
};

此时,如果我们的图片test1.png的大小小于8192k,那么就可以打包成功,但是如果我们的图片大于8192k,此时就需要安装file-loader

安装命令如下:

npm install file-loader --save-dev

然后,在 webpack.config.js 配置中添加 loader。例如:

module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpe?g|gif)$/i,
        use: [
          {
            loader: 'file-loader',
            options: {
              publicPath: "dist/"
            }
          },
        ],
      },
    ],
  },
};

注意:配置时如果你同时配置了url-loader,一定要把url-loader的配置注释掉
此时如果我们进行打包,打包出来的图片名字是随机的哈希值字符串,例如1b959a13f661bd214696460400b8c8d0.png,如果我们想自定义名字,则需要进行配置option选项,具体参数可以参考官网
 

资源模块

webpack5之前我们处理静态资源比如。图片字体之类的资源的时候等,需要用到url-loaderfile-loaderraw-loaderwebpack5则放弃了这三个loader,这三个loadergithub上也停止了更新。

webpack5使用四种新增的资源模块(Asset Modules)替代了这些loader的功能。

  • asset/resource 将资源分割为单独的文件,并导出url,就是之前的 file-loader的功能.
  • asset/inline 将资源导出为dataURL(url(data:))的形式,之前的 url-loader的功能.
  • asset/source 将资源导出为源码(source code). 之前的 raw-loader 功能.
  • asset 自动选择导出为单独文件或者 dataURL形式(默认为8KB). 之前有url-loader设置asset size limit 限制实现。
     

案例

我们这里以assert/inline为例子,进行配置

const path = require('path')

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  module: {
    rules: [
      {
        test: /\.png/,
        type: 'asset/inline'
      },
    ],
  },
}

此时,再进行打包,png格式的图片都会被作为 data URI 注入到 bundle 中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165385.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月30日 下午5:16
下一篇 2022年7月30日 下午5:16


相关推荐

  • 告别“胡说八道”!讯飞星火 X1升级,幻觉治理领先业界主流模型

    告别“胡说八道”!讯飞星火 X1升级,幻觉治理领先业界主流模型

    2026年3月14日
    2
  • 计算机基础知识-操作系统

    计算机基础知识-操作系统1.2操作系统用来操作硬件,了解每一个硬件的作用并熟知其物理特性及使用方法(这是一个极其繁琐、庞大的工作)。桌面很占用系统资源为什么要有操作系统一般而言,现代计算机系统是一个复杂的系统。如果

    2022年8月5日
    7
  • 解决$.ajax()请求异常~ jQuery提示parsererror错误解决办法

    解决$.ajax()请求异常~ jQuery提示parsererror错误解决办法在前端通过ajax请求后台之后返回的时候,出现了下面的异常:error:function(req,textStatus,errorThrown){}req:textStatus:”parsererror”;errorThrown:undefined.而自己的ajax请求如下:type:’POST’,contentType:’application/j…

    2022年6月26日
    56
  • 服务器 IIS服务器防盗链具体设置方法

    服务器 IIS服务器防盗链具体设置方法IIS主机的Rewrite伪静态组件下载与配置之前已经讲过,如果你的apache服务器,请看<Apache服务器设置防盗链的方法>,今天主要说下IIS服务器防盗链的设置方法。isapi_rewrite利用正则表达式进行替换规则的表示。进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可…

    2022年7月23日
    10
  • Go语言之nil

    Go语言之nil有零值 Go 语言之零值 WonderChaos 的博客 CSDN 博客的概念后就好理解 nil 的概念了 1 nil 是一个预先声明的标识符 我们可以直接使用 nil 而不用声明它 2 nil 表示指针 通道 函数 接口 映射或切片类型 即这些类型的零值 注意 nil 是指声明了变量 但没有赋值 如果有初始化或赋值 例如下面例子 2 的切片变量 a 就是空的而非 nil 参考 1 Go 语言实战 威廉 肯尼迪 2 Go 语言之零值 WonderChaos 的博客 CSDN 博客

    2026年3月19日
    3
  • BAT等企业如何面试?看这一篇文章就够了

    BAT等企业如何面试?看这一篇文章就够了感谢内容提供者 金牛区吴迪软件开发工作室今天给朋友带来的是找一份工作的流程详细介绍 以及期间所需要注意的东西 其中包括 简历 附带写简历的注意事项 笔试 附带笔试题详细介绍的链接 电话面试 附带常见的面试题 面试 详细介绍面试时的注意事项 签约 详细介绍签合同之前要了解的东西 面试时的基本礼仪 详细介绍面试时所应有的行为举止 穿着等 一 面试流程及问题解析无论是程序员还是其他职业的面试 虽然都是提交简历 电话面试 面谈 拿到 offer 等一系列过程 但是每一步都很重要 首先简历要精炼

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号