webpack打包图片资源,图片不显示和index.html,HtmlWebpackPlugin

简介: webpack打包图片资源,图片不显示和index.html,HtmlWebpackPlugin

安装相对应的版本号 防止报错
在这里插入图片描述
先看目录结构:创建个img文件夹存放图片
在这里插入图片描述
我们在style.css文件引入图片方便看运行效果
在这里插入图片描述
在程序打包主入口引入style.css
在这里插入图片描述

安装 file-loader 依赖
提示最新版的webpack已经内置了不需要在安装
下面配置规则需注意 已经在下文代码区分
例如版本"webpack": "^5.74.0",

npm install --save-dev file-loader@4.0.0

在webpack.config.js进行配置

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    mode: 'development',//production development开发环境不压缩dist 
    entry: './src/main.js', 
    output: {
        path: path.join(__dirname, './dist/'),
        filename: 'bundle.js'
    },

    module: { // 模块      
        rules: [ // 规则   
            {
                test: /\.css$/i, // 正则表达式,匹配 .css 文件资源        
                use: [  // 使用的 Loader ,注意顺序不能错           
                    'style-loader',//js识别css
                    'css-loader'//将css转换为js
                ]
            },
            //这里是配置打包图片的
            {
                test: /\.(png|svg|jpg|gif)$/i,
                use: [
                    'file-loader'
                ]
            }
          // 最新版的webpack使用方式(webpack内置)
           {
            test: /\.(png|svg|jpg|gif)$/i,
            type:'asset/resource'
            }
        ]
    }
}

打包编译:

bpm  run  build

dist下生成一个打包后的图片
在这里插入图片描述

报错问题:

在这里插入图片描述

**访问根目录下的 index.html, 背景图并未显示出来
控制台显示的是 background-image: url(974db94e3c226840f3cededb0dc51e66.png
因为我们书写代码的时候在style.css文件引入的 图片的路径是../img/1645773893.png
但是我们打包后会在dist文件下生成随即名的图片 这个才是浏览器最终使用的
因为路径不对访问不到
所以我们需要把index.html放在dist目录下**

解决:
使用 HtmlWebpackPlugin 插件

**作用:解决文件路径问题将 index.html 打包到 bundle.js 所在目录中(dist)
同时也会在 index.html 中自动的 script标签 引入 bundle.js**

npm install --save-dev html-webpack-plugin@4.5.0

webpack.config.js文件

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    mode: 'development',//production development开发环境不压缩dist 
    entry: './src/main.js',
    plugins: [
        new HtmlWebpackPlugin({
           template:'./index.html'
        })
    ],
    output: {
        path: path.join(__dirname, './dist/'),
        filename: 'bundle.js'
    },

    module: { // 模块      
        rules: [ // 规则   
            {
                test: /\.css$/, // 正则表达式,匹配 .css 文件资源        
                use: [  // 使用的 Loader ,注意顺序不能错           
                    'style-loader',//js识别css
                    'css-loader'//将css转换为js
                ]
            },
            {
                test: /\.(png|svg|jpg|gif)$/,
                use: [
                    'file-loader'
                ]
            }
        ]
    }
}

在这里插入图片描述
在这里插入图片描述
重新打包:

npm  run build

**index.html打包到dist文件夹里面 这样图片和index.html是相同的目录 浏览器的图片路径
background-image: url(21b04b956bdf9c6d99bfaa06b6a28a0d.png)刚好可以访问到**
在这里插入图片描述
运行index.html正常显示图片
在这里插入图片描述

相关文章
|
1月前
|
前端开发
在Webpack配置文件中,如何配置loader以处理其他类型的文件,如CSS或图片
在Webpack配置文件中,通过设置`module.rules`来配置loader处理不同类型的文件。例如,使用`css-loader`和`style-loader`处理CSS文件,使用`file-loader`或`url-loader`处理图片等资源文件。配置示例:在`rules`数组中添加对应规则,指定`test`匹配文件类型,`use`指定使用的loader。
|
1月前
利用html2canvas插件自定义生成名片信息并保存图片
这是一个利用html2canvas插件自定义生成名片信息并保存图片,自定义上传头像,自定义输入个人信息内容,自定义图片名称,并将生成的图片保存到本地
39 1
利用html2canvas插件自定义生成名片信息并保存图片
HTML 统一资源定位器(Uniform Resource Locators)3
URL字符编码是指将URL中非ASCII字符转换为有效的ASCII格式的过程。URL只能使用ASCII字符集,因此需要对超出该集合的字符进行编码。URL编码使用“%”加上两位十六进制数来表示非ASCII字符,空格通常被编码为“+”。例如,€编码为%80,£编码为%A3。更多信息可参见URL编码参考手册。
|
1月前
|
安全 数据安全/隐私保护
HTML 统一资源定位器(Uniform Resource Locators)2
常见的URL Scheme包括:http(超文本传输协议,用于普通网页,不加密)、https(安全超文本传输协议,用于安全网页,加密信息交换)、ftp(文件传输协议,用于文件的上传和下载)、file(用于访问本地计算机上的文件)。
HTML 统一资源定位器(Uniform Resource Locators)1
统一资源定位器(URL)是用于标识互联网上资源位置的标准格式。URL通常由方案、主机、域名、端口、路径和文件名组成,如 `http://www.runoob.com/html/html-tutorial.html`。大多数用户通过域名访问网站,因为域名比IP地址更容易记忆。URL在Web浏览器中用于请求页面,通过 `<a>` 标签实现链接跳转。
|
2月前
|
缓存 前端开发 JavaScript
Webpack 打包的基本原理
【10月更文挑战第5天】
|
2月前
|
前端开发 UED
Webpack 中处理 CSS 和图片资源的多 Loader 配置
【10月更文挑战第12天】 处理 CSS 和图片资源是 Webpack 配置中的重要部分。通过合理选择和配置多个 Loader,可以实现对这些资源的精细处理和优化,提升项目的性能和用户体验。在实际应用中,需要不断探索和实践,根据项目的具体情况进行灵活调整和优化,以达到最佳的处理效果。通过对 Webpack 中多 Loader 处理 CSS 和图片资源的深入了解和掌握,你将能够更好地应对各种复杂的资源处理需求,为项目的成功构建和运行提供坚实的基础。
91 1
|
2月前
|
前端开发 JavaScript
ES6模块化和webpack打包
【10月更文挑战第5天】
|
2月前
|
缓存 前端开发 JavaScript
深入了解Webpack:模块打包的革命
【10月更文挑战第11天】深入了解Webpack:模块打包的革命
|
2月前
|
移动开发 JavaScript 前端开发
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
这篇文章主要介绍了如何通过配置Webpack的插件,如HtmlWebpackPlugin、uglifyjs-webpack-plugin和webpack-dev-server,来简化前端开发流程。
67 0
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发