webpack 最出色的功能之一就是,除了引入 JavaScript,还可以通过 loader 或内置的 Asset Modules 引入任何其他类型的文件。

webpack5 新增 Asset Modules 资源模块。

资源模块(asset module)是一种模块类型,它允许使用资源文件(字体,图标等)而无需配置额外 loader。

在 webpack 5 之前,通常使用:

1、raw-loader 将文件导入为字符串。

2、url-loader 将文件作为 data URI 内联到 bundle 中。

3、file-loader 将文件发送到输出目录。

资源模块类型(asset module type),通过添加 4 种新的模块类型,来替换所有这些 loader:

1、asset/resource 发送一个单独的文件并导出 URL。之前通过使用 file-loader 实现。

2、asset/inline 导出一个资源的 data URI。之前通过使用 url-loader 实现。

3、asset/source 导出资源的源代码。之前通过使用 raw-loader 实现。

4、asset 在导出一个 data URI 和发送一个单独的文件之间自动选择。之前通过使用 url-loader,并且配置资源体积限制实现。

webpack4 代码

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

webpack5 代码

module.exports = {module: {rules: [{test: /\.(png|jpg|gif)$/i,type: 'asset',parser: {dataurlCondition: {maxSize: 8192}}},],},
};

webpack4 代码

module.exports = {module: {rules: [{test: /\.png$/i,use: 'file-loader'},{test: /\.ico$/i,use: 'url-loader'},{test: /\.text$/i,use: 'raw-loader'},],},
};

webpack5 代码

module.exports = {module: {rules: [{test: /\.png$/i,use: 'asset/resource'},{test: /\.ico$/i,use: 'asset/inline'},{test: /\.text$/i,use: 'asset/source'},],},
};

所以我们以后不要再使用这三个 loader 了,1、raw-loader 2、url-loader 3、file-loader 。并且打开 loader 对应的 github 仓库地址,会看到这样一句话:DEPREACTED for v5: please consider migrating to asset modules. 也就说 v5 版本已经废弃,改成使用资源模块(asset module)了。

当在 webpack 5 中使用旧的 assets loader(如 file-loader/url-loader/raw-loader 等)和 asset 模块时,这可能会导致 asset 重复,所以你可能想阻止 webpack 5 内置的 asset 模块的处理,你可以通过将 asset 模块的类型设置为 'javascript/auto' 来解决。

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

总结:不建议大家再使用旧的 assets loader 如 file-loader/url-loader/raw-loader 。webpack5 已经支持资源模块,通过 type 参数进行配置,可选的参数有:1、asset/resource 2、asset/inline 3、asset/source 4、asset 。

webpack5不要再用url-loader了相关推荐

  1. 长链接(url)转换为短字符串,再把url和短字符串存数据库(有短域名方案)

    import org.apache.commons.codec.digest.DigestUtils;/*** 工具类:通过加密运算后,将长连接转换为短字符串**/ public class Shor ...

  2. Webpack5 教程(3)--处理图片资源

    目录 处理图片资源 1. 配置 2. 添加图片资源 3. 使用图片资源 4. 运行指令 5. 输出资源情况 6. 对图片资源进行优化 修改输出资源的名称和路径 1. 配置 2. 修改 index.ht ...

  3. webpack5打包普通html项目,webpack打包其他资源

    webpack打包其他资源文件 图片打包 file-loader的使用 css内引入图片资源 安装 npm install file-loader -D outputPath:图片文件打包的放在哪个文 ...

  4. window.open(url?param=+paramvalue) 服务端 乱码问题解决

    window.open("url?param="+paramvalue)传递参数出现乱码,在客房端显示是正常的,可是到服务端就是乱码. 1. 利用一个js在客户端转码的函数,esc ...

  5. URL 去重的 6 种方案!(附详细代码)

    来源 | Java中文社群(ID:javacn666) URL 去重在我们日常工作中和面试中很常遇到,比如这些: 可以看出,包括阿里,网易云.优酷.作业帮等知名互联网公司都出现过类似的面试题,而且和 ...

  6. php如何定义url,使用自定义函数作为URL规则

    在创建定义URL规则的时候,毕竟系统自带的通配符变量有限,如果发现通配符变量没法满足你的实际需求 我们可以使用自定义函数来做,当然需要有PHP基础的人才行~ 比如我在模块内容的url中想把标题titl ...

  7. Android Loader机制全面详解及源码浅析

    原文出处:csdn@工匠若水,http://blog.csdn.net/yanbober/article/details/48861457 一.概述 在Android中任何耗时的操作都不能放在UI主线 ...

  8. 嵌入式系统 Boot Loader 技术内幕-目前看到介绍Boot loader最通俗明了的文章

    1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware) ...

  9. 页面从输入 URL 到页面加载显示完成

    这题胜在区分度高,知识点覆盖广,再不懂的人,也能答出几句, 而高手可以根据自己擅长的领域自由发挥,从URL规范.HTTP协议.DNS.CDN.数据库查询. 到浏览器流式解析.CSS规则构建.layou ...

最新文章

  1. Bit-Z CEO长顺入围2018中国经济潮流人物
  2. PHP线程安全和非线程安全的区别
  3. Python基础概念_1_环境安装
  4. 【Python】时间处理:日期减少n年(考虑闰年)
  5. 扩展 junit 框架_JUnit 5 –扩展模型
  6. 前端学习(1284):node开发概述
  7. 二叉树的右视图 python_【leetcode刷题】T128-二叉树的右视图
  8. mysql case结合group+having使用
  9. 显著性水平与p值的区别
  10. 10 道超级高频 Java 面试题,助力金三银四
  11. python三菱fx3u通讯_【案例】三菱FX3UPLC的无线通讯讲解
  12. Linux期末考试简答题
  13. ubuntu 20.04 耳机没有声音
  14. VS2010出现重复的代码项原因及解决方式
  15. IDEA设置输入忽略大小写
  16. execjs._exceptions.ProcessExitedWithNonZeroStatus
  17. S3 Drive支持以及FIPS 140-2兼容性
  18. 斯坦福教授研究了美国200年专利数据: 论文发得多?不等于创新!
  19. 别用XShell了,这款SSH工具绝对惊艳,还支持网页版...
  20. HR:请问你的期望工资是多少?

热门文章

  1. Linux之父新年首次“炮轰”:英特尔在扼杀整个ECC行业
  2. 求锤得锤,你要的一致性 hash 来了! | 附代码
  3. 75.58 亿美元成交!美国最大规模 5G 毫米波频谱拍卖
  4. 耐克为何不接受加密货币付款?
  5. 日本要向中国收二维码使用费?每人一分钱?
  6. 揭秘苹果“地下黑工厂”:临时工薪资无保障,男厕所门口排长龙
  7. 引起 Edge 浏览器远程代码漏洞的幕后黑手已出现!
  8. 不懂算法的程序员不是好工程师!
  9. GitHub 的“封神”之路!
  10. 跳槽加薪?调研数据告诉你,提升这些技能最有用