在实际应用中有以下几种图片的引用方式:

  1. HTML文件中img标签的src属性引用或者内嵌样式引用
<img src="photo.jpg" />
<div style="background:url(photo.jpg)"></div>
  1. CSS文件中的背景图等设置
.photo {background: url(photo.jpg);
}
  1. JavaScript文件中动态添加或者改变的图片引用
var imgTempl = '<img src="photo.jpg" />';
document.body.innerHTML = imgTempl;

在webpack里面打包图片资源需要用到url-loader

  1. 首先安装url-loader
npm install --save-dev url-loader
  1. webpack.config.js配置
//处理图片资源
{ test: /\.(gif|png|jpg)$/,loader: 'url-loader',options: {//图片小于100b,就会被base64处理//优点:减少请求数量(减轻服务器压力)//缺点:图片体积会更大(文件请求速度更慢)limit: 100,//问题:因为url-loader默认使用es6模块化解析,html-loader引入图片是commonjs//解析时会出现问题:[object Module]//关闭url-loader的es6模块化解析,使用commonjsesModule: false,name: '[hash:10].[ext]',//把打包的图片资源输出到image下outputPath: 'resource'}
},
//处理html的img图片(负责引入img,从而能被url-loader进行处理)
{ test: /\.html$/,loader: 'html-loader'
}

这样配置后打包的时候报了一个错误:

ERROR in   Error: Child compilation failed:Module not found: Error: Can't resolve '../../dist/js/index.js' in 'F:\FrontEn  d\Project\aiunmall-fe\src\view'ModuleNotFoundError: Module not found: Error: Can't resolve '../../dist/js/ind  ex.js' in 'F:\FrontEnd\Project\aiunmall-fe\src\view'- Compilation.js:1668 factory.create[node_global]/[webpack]/lib/Compilation.js:1668:28- NormalModuleFactory.js:712 hooks.factorize.callAsync[node_global]/[webpack]/lib/NormalModuleFactory.js:712:13- NormalModuleFactory.js:273 hooks.resolve.callAsync[node_global]/[webpack]/lib/NormalModuleFactory.js:273:22- NormalModuleFactory.js:402 err[node_global]/[webpack]/lib/NormalModuleFactory.js:402:22- NormalModuleFactory.js:117 err[node_global]/[webpack]/lib/NormalModuleFactory.js:117:11- NormalModuleFactory.js:628 resolveResource[node_global]/[webpack]/lib/NormalModuleFactory.js:628:24- NormalModuleFactory.js:782 _resolveResourceErrorHints[node_global]/[webpack]/lib/NormalModuleFactory.js:782:8- NormalModuleFactory.js:902 asyncLib.parallel[node_global]/[webpack]/lib/NormalModuleFactory.js:902:5- child-compiler.js:169 childCompiler.runAsChild[aiunmall-fe]/[html-webpack-plugin]/lib/child-compiler.js:169:18- Compiler.js:534 compile[node_global]/[webpack]/lib/Compiler.js:534:11- Compiler.js:1087 hooks.afterCompile.callAsync.err[node_global]/[webpack]/lib/Compiler.js:1087:17- Hook.js:18 Hook.CALL_ASYNC_DELEGATE [as _callAsync][node_global]/[webpack]/[tapable]/lib/Hook.js:18:14- Compiler.js:1083 compilation.seal.err[node_global]/[webpack]/lib/Compiler.js:1083:33- Compilation.js:2424 hooks.afterSeal.callAsync.err[node_global]/[webpack]/lib/Compilation.js:2424:11- Hook.js:18 Hook.CALL_ASYNC_DELEGATE [as _callAsync][node_global]/[webpack]/[tapable]/lib/Hook.js:18:14- Compilation.js:2417 hooks.processAssets.callAsync.err[node_global]/[webpack]/lib/Compilation.js:2417:381 ERROR in child compilations (Use 'stats.children: true' resp. '--stats-children' for more details)
webpack 5.31.0 compiled with 3 errors in 744 ms

导致打包后的html里面引入的图片无法加载出来,刚开始找,网上说是我静态资源路径有问题,可是后面检查了好几遍也没发现问题,最后才知道webpack处理html文件里面的图片资源时需要用到html-withimg-loder
webpack.config.js 添加配置

module: {loaders: [{test: /\.html$/,loader: 'html-withimg-loader'}]
}

重新打包后发现图片可以正常加载出来了。

webpack打包图片资源问题相关推荐

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

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

  2. npm 及 webpack打包工具

    npm包管理工具 1,认识npm npm即node的包管理器 是Node.js默人的.以JavaScript编写的软件包管理系统 npm已经是前端工程师的标配 在npm上我们可以很方便的下载我们所需要 ...

  3. Vue——10 - webpack打包保姆级教程01——打包js、json、css、less、html、背景图片以及图片、字体(Font)文件,devsever,生产环境配置以及css的兼容写法

    目录 一.webpack打包JS文件 1.新建入口文件index.js和mathUtils.js,index.js是依赖于mathUtils.js 2.然后使用webpack命令打包js文件 二.打包 ...

  4. 使用webpack打包vue项目

    使用webpack打包vue项目 安装webpack工具,安装方式有两种:全局安装(命令:npm install -g webpack webpack-cli)以及安装在项目中,这里使用第二种: // ...

  5. mars3d - Webpack打包教程

    mars3d - Webpack打包教程 1.新建文件夹mars3d-webpack 2.初始化 npm,然后 在本地安装 webpack,接着安装 webpack-cli(此工具用于在命令行中运行 ...

  6. Webpack打包-打包详细流程

    Webpack  Webpack是一个现代化的静态模块打包器,支持JavaScript.CSS.图片等资源的打包.它将所有模块及其依赖项视为静态资源,并创建一个依赖关系图,将这些资源转换为有效的输出文 ...

  7. 【webpack】使用webpack打包图片文件、打包时生成单独的css文件

    使用webpack打包图片文件 在scr目录下创建image文件夹,并且添加几张图片 在main.js使用import方式引入所有图片,并且append到app节点下 // 引入图片资源 import ...

  8. 使用webpack打包后,vscode中vue代码变白色的解决办法

    使用webpack打包后,vscode中vue代码变白色的解决办法 卸载vetur,重装vetur

  9. webpack打包HTML配置自动,十三、HtmlWebpackPlugin的使用 ------- 2019-04-25

    一.作用:htmlWebpackPlugin插件会在webpack打包结束后,自动帮我们生成一个HTML文件,并把打包生成的js自动引入到这个HTML文件中: 二.安装 :npm install ht ...

最新文章

  1. LeetCode简单题之只出现一次的数字
  2. iOS使用支付宝支付步骤
  3. 谷歌称居家办公影响工作效率!2021 年将回归线下办公
  4. c语言class运行错误,win32 C RegisterClass失败,该如何处理
  5. SpringBoot中maven打包,启动报没有主清单属性
  6. replugin源码解析之replugin-plugin-gradle(插件的gradle插件)
  7. Oracle中的Raw类型解释
  8. JavaScript之childNodes属性、nodeType属性学习
  9. BZOJ3209(n的二进制表示中1的个数的乘积)
  10. HTML+CSS+JS实现 ❤️卡通湖面上日出动画特效❤️
  11. 基于yolov3和pythorch框架的火焰识别检测算法
  12. linux裸设备大小,SUSE Linux 十 配置裸设备(raw devices)
  13. C#_LINQ(LINQ to Entities)
  14. dvi接口引脚定义_DVI、D系列端子插口针脚定义
  15. pthread编译时报错的解决方法
  16. kinit什么意思_kerberos入坑指南
  17. java导入Excel中数据查重的方法
  18. Gradle脚本小总结
  19. 解决PotPlayer播放视频没有声音
  20. 微信小程序-从零开始制作一个跑步微信小程序 1

热门文章

  1. 抽奖机(用除法)1.0-python
  2. 【javaWeb微服务架构项目——乐优商城day05】——商品规格参数管理(增、删、改,查已完成),SPU和SKU数据结构,商品查询
  3. 手机录屏并转换成gif动图
  4. 图像置乱之评价图像置乱度算法的选择
  5. 拯救者R9000X显卡驱动安装
  6. 飞思卡尔Kinetis系列单片机被锁住后,怎么解锁
  7. 淘宝新店刚开如何测款?
  8. 查询快递 教你一个方法按照物流途径城市筛选签收地
  9. pyecharts官网
  10. BaseAdapter的使用