【webpack5修行之道】第2篇:webpack处理图片资源和其他资源

2024-01-12 15:10

本文主要是介绍【webpack5修行之道】第2篇:webpack处理图片资源和其他资源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇: webpack5修行之道1- webpack基本概念、处理css+less

这篇我们介绍webpack怎么打包图片资源和其他资源:

在介绍之前,我们先指出一点问题:

我们的output输出始终都为built.js,浏览器会对静态资源进行缓存,下次打包的时候如果还为built.js在浏览器这边就需要强制刷新,每次打包都需要强制刷新,这个显然是不对的,用户可不知道什么时候去强制刷新浏览器

为了解决这个问题,我们需要修改output.filename的配置

const { resolve } = require('path')module.exports = {//入口文件entry: './src/index.js',//打包后的文件配置output: {//指定输出的目录,一般采用绝对路径path: resolve(__dirname,'build'),filename: '[hash:10].built.js'},module: {//loader配置rules: [{//匹配以.css结尾的文件test: /\.css$/,//单个loader使用loader属性//loader: 'css-loader'//多个loader处理一个文件,需要使用use//use属性的执行顺序为逆序,也就是数组尾->数组首的顺序use: ['style-loader','css-loader']},{//匹配以.less结尾的文件test: /\.less$/,use: ['style-loader','css-loader','less-loader']}]},//插件配置plugins:[],//环境配置mode: 'development'
}

这里的hash是值webpack打包的hash值,每次webpack打包都会生成一个hash,[hash:10]的意思就是取hash值的前10位

运行编译命令: npm run build ,编译成功后查看build文件夹

发现已经多了一个js文件,这个时候修改index.html的入口引入文件

这样我们就能把新打包的js文件引入了,但我们每次打包都需要修改script标签来引入新的入口文件,这未免也太麻烦了吧

是的,所以我们这里需要html-webpack-plugin插件来解决这个问题

先下载html-webpack-plugin: npm install -D html-webpack-plugin,下载完毕后修改webpack.config.js将这个插件引入

const { resolve } = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')module.exports = {//入口文件entry: './src/index.js',//打包后的文件配置output: {//指定输出的目录,一般采用绝对路径path: resolve(__dirname,'build'),filename: '[hash:10].built.js'},module: {//loader配置rules: [{//匹配以.css结尾的文件test: /\.css$/,//单个loader使用loader属性//loader: 'css-loader'//多个loader处理一个文件,需要使用use//use属性的执行顺序为逆序,也就是数组尾->数组首的顺序use: ['style-loader','css-loader']},{//匹配以.less结尾的文件test: /\.less$/,use: ['style-loader','css-loader','less-loader']}]},//插件配置plugins:[new HtmlWebpackPlugin({template: './index.html'})],//环境配置mode: 'development'
}

html-webpack-plugin会自动帮我们引入入口文件,所以我们需要删除原来的script

删除后index.html如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta na

这篇关于【webpack5修行之道】第2篇:webpack处理图片资源和其他资源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598266

相关文章

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py