当前位置: 首页 > news >正文

Webpack5入门到原理9:处理字体图标资源

1. 下载字体图标文件

  • 打开阿里巴巴矢量图标库
  • 选择想要的图标添加到购物车,统一下载到本地

2. 添加字体图标资源

  • src/fonts/iconfont.ttf
  • src/fonts/iconfont.woff
  • src/fonts/iconfont.woff2
  • src/css/iconfont.css/注意字体文件路径需要修改

src/main.js

import { add } from "./math";
import count from "./js/count";
import sum from "./js/sum";
// 引入资源,Webpack才会对其打包
import "./css/iconfont.css";
import "./css/index.css";
import "./less/index.less";
import "./sass/index.sass";
import "./sass/index.scss";
import "./styl/index.styl";console.log(count(2, 1));
console.log(sum(1, 2, 3, 4));

public/index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>webpack5</title></head><body><h1>Hello Webpack5</h1><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div><div class="box5"></div><!-- 使用字体图标 --><i class="iconfont icon-arrow-down"></i><i class="iconfont icon-ashbin"></i><i class="iconfont icon-browse"></i><script src="../dist/static/js/main.js"></script></body>
</html>

3. 配置

const path = require("path");module.exports = {entry: "./src/main.js",output: {path: path.resolve(__dirname, "dist"),filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中clean: true, // 自动将上次打包目录资源清空},module: {rules: [{// 用来匹配 .css 结尾的文件test: /\.css$/,// use 数组里面 Loader 执行顺序是从右到左use: ["style-loader", "css-loader"],},{test: /\.less$/,use: ["style-loader", "css-loader", "less-loader"],},{test: /\.s[ac]ss$/,use: ["style-loader", "css-loader", "sass-loader"],},{test: /\.styl$/,use: ["style-loader", "css-loader", "stylus-loader"],},{test: /\.(png|jpe?g|gif|webp)$/,type: "asset",parser: {dataUrlCondition: {maxSize: 10 * 1024, // 小于10kb的图片会被base64处理},},generator: {// 将图片文件输出到 static/imgs 目录中// 将图片文件命名 [hash:8][ext][query]// [hash:8]: hash值取8位// [ext]: 使用之前的文件扩展名// [query]: 添加之前的query参数filename: "static/imgs/[hash:8][ext][query]",},},{test: /\.(ttf|woff2?)$/,type: "asset/resource",generator: {filename: "static/media/[hash:8][ext][query]",},},],},plugins: [],mode: "development",
};

type: "asset/resource"和type: "asset"的区别:

type: "asset/resource" 相当于file-loader, 将文件转化成 Webpack 能识别的资源,其他不做处理

type: "asset" 相当于url-loader, 将文件转化成 Webpack 能识别的资源,同时小于某个大小的资源会处理成 data URI 形式

4. 运行指令

npx webpack

打开 index.html 页面查看效果

相关文章:

Webpack5入门到原理9:处理字体图标资源

1. 下载字体图标文件 打开阿里巴巴矢量图标库选择想要的图标添加到购物车&#xff0c;统一下载到本地 2. 添加字体图标资源 src/fonts/iconfont.ttfsrc/fonts/iconfont.woffsrc/fonts/iconfont.woff2src/css/iconfont.css/注意字体文件路径需要修改 src/main.js import { …...

【Docker】在Windows操作系统安装Docker前配置环境

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Docker容器》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…...

Webpack5入门到原理21:提升开发体验

SourceMap 为什么 开发时我们运行的代码是经过 webpack 编译后的&#xff0c;例如下面这个样子&#xff1a; /** ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").* This devtool is neither made for product…...

YOLOv8改进 | Conv篇 | 在线重参数化卷积OREPA助力二次创新(提高推理速度 + FPS)

一、本文介绍 本文给大家带来的改进机制是一种重参数化的卷积模块OREPA,这种重参数化模块非常适合用于二次创新,我们可以将其替换网络中的其它卷积模块可以不影响推理速度的同时让模型学习到更多的特征。OREPA是通过在线卷积重参数化(Online Convolutional Re-parameteriza…...

conda国内加速

1、配置国内源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 2、显示源地址 conda config --set show_channel_urls yes...

RabbitMQ-数据持久化

一、持久化类型 1、交换机持久化&#xff08;SpringAMQP默认&#xff09; 2、队列持久化&#xff08;SpringAMQP默认&#xff09; 3、消息持久化 二、消息持久化 1、纯内存操作 如果采用纯内存操作&#xff0c;那么消息存储达到队列的上限之后&#xff0c;会有一个page ou…...

JS-WebAPIs-本地存储(五)

• 本地存储介绍 以前我们页面写的数据一刷新页面就没有了&#xff0c;是不是&#xff1f;随着互联网的快速发展&#xff0c;基于网页的应用越来越普遍&#xff0c;同时也变的越来越复杂&#xff0c;为了满足各种各样的需求&#xff0c;会经常 性在本地存储大量的数据&#xf…...

了解Vue中日历插件Fullcalendar

实现效果如下图&#xff1a; 月视图 周视图 日视图 官方文档地址&#xff1a;Vue Component - Docs | FullCalendar 1、安装与FullCalendar相关的依赖项 npm install --save fullcalendar/vue fullcalendar/core fullcalendar/daygrid fullcalendar/timegrid fullcalend…...

Cloudreve存储策略-通过从机存储来拓展容量

Sham的云服务器是搬瓦工最低低低配的&#xff0c;1H 0.5G不说&#xff0c;硬盘容量也只有10g&#xff0c;说实话&#xff0c;装了宝塔面板和服务器套件后&#xff0c;基本满了&#xff0c;这时又想在云服务器上打个网盘用于下载、存储&#xff0c;这时就需要拓展硬盘&#xff0…...

java进阶-jvm精讲及实战

深入了解jvm及实战 1.引言2.jvm概念理解 1.引言 jvm是深入了解java底层逻辑的必备知识储备,在中大型开发团队里,中高级工程师必须要了解和掌握,也是中高级工程师面试必考题,在实战中用于程序性能调优,内存泄露分析等 2.jvm概念理解...

vue中引入sass、scss

常规步骤 1. 创建项目 使用vue cli 脚手架工具创建项目 vue create xxxx2. 创建全局样式文件 全局样式变量 路径&#xff1a;/assets/styles/variables.scss //flex 布局变量 $--flex-direction: ("row", "column"); $--flex-position: ("start"…...

Java学习笔记(八)——Lambda表达式

文章目录 Lambda表达式Lambda表达式的省略写法Lambda练习练习1练习2 算法题算法题1 斐波那契数列算法题2 猴子吃桃子算法题3 爬楼梯 Lambda表达式 Lambda表达式是JDK8开始的一种新语法形式。 基本作用&#xff1a;简化函数式接口的匿名内部类的写法。 注意&#xff1a; Lam…...

【JavaEE】CAS

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…...

Linux 系统之部署 h5ai 目录列表程序

一、h5ai 介绍 1.1&#xff09;h5ai 简介 h5ai 是用于 HTTP Web 服务器的现代文件索引器&#xff0c;专注于您的文件。目录以吸引人的方式显示&#xff0c;浏览它们通过不同的视图、面包屑和树概述得到增强。最初 h5ai 是 HTML5 Apache Index 的首字母缩写&#xff0c;但现在它…...

MySQL自增ID耗尽探究:分析与解决方案

MySQL自增ID耗尽探究&#xff1a;分析与解决方案 一、引言 在面试过程中&#xff0c;面试官抛出了一个看似简单却又深入的问题&#xff1a;“MySQL的自增ID用完了&#xff0c;怎么办&#xff1f;” 自增ID耗尽可能看似遥远&#xff0c;但在处理大量数据的系统中&#xff0c;…...

操作系统-操作系统引导(磁盘 操作系统引导过程)

文章目录 总览一个刚买来的磁盘&#xff08;硬盘&#xff09;往磁盘安装操作系统后操作系统引导过程例&#xff1a;windows操作系统的初始化程序 总览 一个刚买来的磁盘&#xff08;硬盘&#xff09; 此时空空如也 往磁盘安装操作系统后 操作系统在C盘 主引导记录不属于某…...

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十三)

地址簿相关功能 1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码实现1.2.1 Mapper层1.2.2 Service层1.2.3 Controller层 1.1 需求分析和设计 1.1.1 产品原型 地址簿&#xff0c;指的是消费者用户的地址信息&#xff0c;用户登录成功后可以维护自己的地…...

SAP S/4HANA 2023 Fully-Activated Appliance 虚拟机版介绍

注&#xff1a;市面上所有在售虚拟机均为拷贝本人所作的虚拟机&#xff0c;存在各种技术问题&#xff0c;请知悉。 SAP S4HANA 2023 FAA版本内置了四个Client&#xff1a; 1、000&#xff1a;SAP初始Client&#xff0c;原则上不能动&#xff1b; 2、100&#xff1a;只激活了US…...

【Docker篇】详细讲解容器相关命令

&#x1f38a;专栏【Docker】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f6f8;容器&#x1f339;相关命令&#x1f354;案例⭐创建并运…...

LSTM学习笔记

上一篇文章中我们提到&#xff0c;CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块&#xff0c;本篇中就来针对该模块的结构和实现做一些理解。 Bidirectional LSTM模块结构如下图所示&#xff1a; 在Pytorch中&#xff0c;已经集成了LSTM模块&#xff0c;定义如下&…...

中间件简单题目教学

题目1&#xff1a;环境搭建与简单模式使用 Docker 启动 RabbitMQ 4.x 容器&#xff0c;用户 guest&#xff0c;密码 123456&#xff0c;映射管理端口 15672。编写 Java 原生生产者&#xff0c;向队列 test_queue 发送消息 "Hello Exam"。编写 Java 原生消费者&#x…...

避坑指南:ESP32-C3蓝牙开发中GATT读写事件的常见误解与正确姿势

ESP32-C3蓝牙GATT开发实战&#xff1a;破解读写事件的核心逻辑与高效数据流设计 当你在ESP32-C3上实现蓝牙温度传感器时&#xff0c;是否遇到过这样的困境&#xff1a;手机APP读取到的温度值总是比实际值延迟了2秒&#xff1f;或者明明在代码里更新了数据&#xff0c;客户端却始…...

在Node.js后端服务中集成Taotoken实现多模型异步调用的教程

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成Taotoken实现多模型异步调用的教程 对于需要在后端服务中调用大语言模型的Node.js开发者而言&#xff0c;…...

墨水屏高效开发:架构、开源库与实战优化指南

1. 项目概述&#xff1a;为什么墨水屏开发值得深挖&#xff1f;如果你接触过电子墨水屏&#xff0c;第一印象可能是“反应慢”、“刷新有残影”、“只能显示黑白”。确实&#xff0c;相比我们手机、电脑上那些流光溢彩的LCD或OLED屏幕&#xff0c;墨水屏在响应速度和色彩表现上…...

构建内容生成应用时借助Taotoken灵活选用不同风格模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 构建内容生成应用时借助Taotoken灵活选用不同风格模型 在内容创作与营销文案生成的实际应用中&#xff0c;单一模型往往难以满足多…...

机器学习核心术语全解析:从评估指标到TensorFlow实战避坑指南

1. 项目概述与核心价值刚接触机器学习&#xff0c;尤其是像TensorFlow这样庞大框架的朋友&#xff0c;最头疼的莫过于满屏的英文术语。什么“Backpropagation”、“Softmax”、“Embedding”&#xff0c;每个词都认识&#xff0c;但组合在一起就让人云里雾里。更别提那些缩写&a…...

用Midas Civil搞定箱梁桥抗倾覆验算:从规范解读到多支座工况的实操避坑

用Midas Civil实现箱梁桥抗倾覆验算的工程实践指南 箱梁桥作为现代交通基础设施的重要组成部分&#xff0c;其抗倾覆稳定性直接关系到桥梁运营安全。2018版《公路钢混及预混桥涵设计规范》&#xff08;JTG 3362-2018&#xff09;首次系统性地提出了抗倾覆验算要求&#xff0c;…...

不只是格式化:深入理解Mac磁盘工具里的‘分区方案’(GUID/MBR/APM),选对才能跨平台读写

不只是格式化&#xff1a;深入理解Mac磁盘工具里的‘分区方案’&#xff08;GUID/MBR/APM&#xff09;&#xff0c;选对才能跨平台读写 当你将一块移动硬盘从APFS格式化为ExFAT后&#xff0c;满心欢喜地插到Windows电脑上&#xff0c;却依然收到"需要格式化"的提示—…...

水文水资源、水生态与水环境领域必修技能暨 ArcGIS Pro全流程实践技术学习及AI融合应用

ArcGIS Pro 是一款集数据采集、处理、分析和可视化于一体的强大 GIS 工具&#xff0c;广泛应用于水文、水资源、水生态和水环境等领域。其全面的功能使得研究人员能够高效地处理各种水文和环境数据&#xff0c;从而为科学研究和决策支持提供强有力的技术保障。在水文分析方面&a…...

AWorks硬件抽象层:嵌入式开发中UART、I2C、SPI、ADC接口的统一编程实践

1. 项目概述&#xff1a;当嵌入式开发遇上“万能插座”在嵌入式系统开发中&#xff0c;我们常常面临一个经典难题&#xff1a;硬件平台的碎片化。今天&#xff0c;你可能在为一块基于ARM Cortex-M4的MCU编写SPI驱动&#xff0c;用来连接一块TFT屏幕&#xff1b;明天&#xff0c…...