开发者社区> 零零水> 正文

手把手教你webpack3(8)url-Loader配置简述

简介:
+关注继续查看

URL-LOADER配置简述

前注:

文档全文请查看 根目录的文档说明

如果可以,请给本项目加【Star】和【Fork】持续关注。

有疑义请点击这里,发【Issues】。

DEMO地址

1、概述

简单来说,url-loader的效果类似file-loader

优点:

可以将css文件中的图片链接,转为base64字符串,或移动到打包后文件夹;

缺点:

可配置性比file-loader弱一些,但其实file-loader的那些配置,一般也用不到。

2、配置

2.1、limit

名称 类型 默认值 描述
limit {Number} undefined Byte limit to inline files as Data URL

使用url-loader的唯一目的,可以说就是为了这个,效果是将文件大小低于指定值的图片,转为base64字符串。

值表示小于这个大小的图片会被转码,单位是字节(1024 即 1KB)

配置:

{
    test: /\.(png|jpg|jpeg|gif)$/,
    use: [
        {
            loader: 'url-loader',
            options: {
                limit: 10000
            }
        }
    ]
}

css文件:

#app {
    position: relative;
    width: 500px;
    height: 500px;
    border: 1px solid red;
    background: url('./logo.png') no-repeat;
    box-sizing: border-box;
}

#logo {
    position: relative;
    width: 100px;
    height: 100px;
    border: 1px solid red;
    background: url('./logo.jpg') no-repeat;
    box-sizing: border-box;
}

webpack打包后效果:

url('./logo.jpg')

url('./logo.png')

变为

url(很长一个base64字符串)

注:

  1. 如果你想 .png 文件小于8kb转为base64字符串,但是 .jpg文件不管大小多少,都不转为base64字符串;
  2. 那么就需要用 file-loader 来搬运 .jpg 文件, url-loader 来搬运和转码 .png文件;
  3. 不能尝试两次调用 url-loader 来,用两个不同的配置来同时处理两种情况;
  4. 不过这个场景应该出现的极少。

2.2、mimetype

名称 类型 默认值 描述
mimetype {String} extname Specify MIME type for the file (Otherwise it's inferred from the file extension)

这个配置的意思呢,就是说,要不要把其他后缀名的图片文件,统一转为同一种格式的base64编码。

例如:

  1. 假如我有一个logo.png和一个logo.jpg图片;
  2. 那么png文件转码后的开头部分是:data:image/png;base64,
  3. 而jpg文件转码后的开头部分是:data:image/jpeg;base64,
  4. 如果配置这么写:mimetype: 'image/png'
  5. 那么开头部分将统一变为:data:image/png;base64,
  6. 另外,这个改变只是修改开头部分,但是实际大小是不影响的(当然,jpeg要比png多一个字符,实际测试结果,表示差别只有这一个字符而已);

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【TypeScript教程】# 6:使用webpack打包ts代码
【TypeScript教程】# 6:使用webpack打包ts代码
21 0
Webpack打包
Webpack打包 安装webpack 配置webpack 配置webpack-dev-server 安装loader 自动清理 dist 目录下的旧文件 抽离和压缩CSS 对图片进行打包 安装webpack 执行如下命令 npm install webpack webpack-cli 配置webpack 项目根目录中创建 webpack.config.js 配置文件: 配置入口entry(所需打包的文件路径) 配置出口output (1)path指文件打包后的存放路径 (2)path.resolve()方法将路径或路径片段的序列处理成绝对路径 (3)__dirname 表示当前文件
19 0
如何手写一个 webpack 插件:实现 vuecli3 打包时生成一个 git 分支版本信息的文件?
如何手写一个 webpack 插件:实现 vuecli3 打包时生成一个 git 分支版本信息的文件?
26 0
webpack进阶篇(二十七):webpack实现SSR打包(下)
webpack进阶篇(二十七):webpack实现SSR打包(下)
21 0
webpack进阶篇(二十六):webpack实现SSR打包(上)
webpack进阶篇(二十六):webpack实现SSR打包(上)
41 0
webpack进阶篇(二十五):webpack打包组件和基础库
webpack进阶篇(二十五):webpack打包组件和基础库
40 0
webpack进阶篇(十八):多页面打包
webpack进阶篇(十八):多页面打包
31 0
【nodejs代理服务器二】nodejs webpack打包配置踩坑总结
【nodejs代理服务器二】nodejs webpack打包配置踩坑总结
33 0
webpack打包编译结果的原理分析
webpack打包编译结果的原理分析
46 0
模块打包器Webpack详解!
Webpack 1、什么是Webpack Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。 从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。
25 0
+关注
零零水
主攻JS
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于webpack和npm的前端组件化实践
立即下载
SPARKLER,A web-crawler on Apache Spark
立即下载
从Web到Cloud App
立即下载