解决webpack5.54打包图片及图标的问题

解决webpack5.54打包图片及图标的问题

  • 问题描述
  • 分析原因
  • 解决方法
    • 一、loader的解决方法
    • [使用 Asset Modules 可以接收并加载任何文件,然后将其输出到构建目录。这就是说,我们可以将它们用于任何类型的文件,包括图片和字体。但未能设定指定目录,均打包成了静态的资源](#使用 Asset Modules 可以接收并加载任何文件,然后将其输出到构建目录。这就是说,我们可以将它们用于任何类型的文件,包括图片和字体。但未能设定指定目录,均打包成了静态的资源)

问题描述

复制代码
在用webpack5.54打包图片及图标的时,打包不报错,但浏览里图片与图标均看不见,尤其是css里的背景图片和iconfont图标

分析原因

复制代码
打包后,发现图片文件除了在指定的文件目录下打包了文件,在根目录下也有打包的文件,但文件名为默认的hash名,但没有iconfont.css打包文件。

看了一下打包后.html和.css文件,图片的路径是根目录下,图片的路径均不对,但我在webpack.config.js文件中明明指定了路径,也按要求打包了文件,后来经上网查,发现是webpack5.54版本太新了的问题。

{

exclude: /.(js|json|html|css|less|sass|png|gif|jpg|jpeg)$/,

loader: 'file-loader',

options: {

outputPath: 'font/',

publicPath: './font',

name: '[name].[ext]',

// esModule: false

},

// type:"javascript/auto"

// type:"asset"

}

解决方法

一、loader的解决方法

关于下载url- loader 之后打包图片不显示的问题

webpack5 已经启用旧版的assets loader, 需要在webpack.confid.js中添加配置(在对应的module中)

不会重复打包,多次使用同一个资源,只会生成一个文件。当在 webpack 5 中使用旧的 assets loader(如 file-loader/url-loader/raw-loader 等)和 asset 模块时,你可能想停止当前 asset 模块的处理,并再次启动处理,这可能会导致 asset 重复,你可以通过将 asset 模块的类型设置为 'javascript/auto' 来解决。

关于html-loader 打包不显示的问题

需要在配置中添加

esModule: false// 关闭es6模块的解析, 使用commonjs模块解析在 webpack 5 之前,通常使用:

javascript 复制代码
{
	exclude: /\.(js|json|html|css|less|sass|png|gif|jpg|jpeg)$/,
	loader: 'file-loader',
	options: {
		outputPath: 'font/',
		publicPath: './font',
		name: '[name].[ext]',
		esModule: false
	},
	type:"javascript/auto"
}

使用 Asset Modules 可以接收并加载任何文件,然后将其输出到构建目录。这就是说,我们可以将它们用于任何类型的文件,包括图片和字体。但未能设定指定目录,均打包成了静态的资源

javascript 复制代码
 {
	exclude: /\.(js|json|html|css|less|sass|png|gif|jpg|jpeg)$/,
	type:"javascript/auto"
}
相关推荐
怕浪猫1 分钟前
React从入门到出门 第五章 React Router 配置与原理初探
前端·javascript·react.js
jinmo_C++1 分钟前
从零开始学前端 · HTML 基础篇(一):认识 HTML 与页面结构
前端·html·状态模式
鹏多多8 分钟前
前端2025年终总结:借着AI做大做强再创辉煌
前端·javascript
WebGISer_白茶乌龙桃13 分钟前
Cesium实现“悬浮岛”式,三维立体的行政区划
javascript·vue.js·3d·web3·html5·webgl
小Tomkk16 分钟前
⭐️ StarRocks Web 使用介绍与实战指南
前端·ffmpeg
计算机学姐18 分钟前
基于SpringBoot的汽车租赁系统【个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·后端·spring·汽车·推荐算法
不一样的少年_20 分钟前
产品催: 1 天优化 Vue 官网 SEO?我用这个插件半天搞定(不重构 Nuxt)
前端·javascript·vue.js
-dcr22 分钟前
50.智能体
前端·javascript·人工智能·ai·easyui
BingoGo23 分钟前
免费可商用商业级管理后台 CatchAdmin V5 正式发布 插件化与开发效率的全面提升
vue.js·后端·php
行者9631 分钟前
Flutter跨平台开发适配OpenHarmony:进度条组件的深度实践
开发语言·前端·flutter·harmonyos·鸿蒙