Webpack5-字体

news/2024/10/22 14:41:20

处理字体图标资源

1. 下载字体图标文件

  1. 打开阿里巴巴矢量图标库

  2. 选择想要的图标添加到购物车,统一下载到本地

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"的区别:

  1. type: "asset/resource" 相当于file-loader, 将文件转化成 Webpack 能识别的资源,其他不做处理
  2. type: "asset" 相当于url-loader, 将文件转化成 Webpack 能识别的资源,同时小于某个大小的资源会处理成 data URI 形式

4. 运行指令

npx webpack

打开 index.html 页面查看效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74640.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Lightroom和Photoshop在图片编辑中有什么区别

Lightroom和Photoshop在图片编辑中的区别:1.应用场景不同;2.功能特性差异;3.工作流程差异;4.调整方式的不同;5.文件格式支持和输出差异。本文深入比较了Adobe Lightroom和Photoshop这两款常用的图片编辑软件。从应用场景、功能特性、工作流程等多个方面探讨它们的区别,帮…

快到2025年了,OCP的认证考试费用会降价吗?

从事数据库工作的都知道,OCP证书是非常受欢迎的一个认证,是从事数据库管理员的首选证书之一,所以想考OCP证书的也非常多,关于OCP考试的费用问题,也一直是大家关注的焦点。其实,考OCP证书总的费用是根据Oracle官方的考试价格再加上培训机构的培训费用、培训记录、教材费用…

HDFS 重要机制之 checkpoint

核心概念 hdfs checkpoint 机制对于 namenode 元数据的保护至关重要, 是否正常完成检查点是评估 hdfs 集群健康度和风险的重要指标editslog : 对 hdfs 操作的事务记录,类似于 wal ,edit log文件以 edits_ 开头,后面跟一个txid范围段,并且多个edit log之间首尾相连,正在使用…

怎么申请电子邮箱

申请电子邮箱的步骤:1.确定用户类型,选择典型代表;2.设定申请目标,明确申请流程;3.选择申请方式,确定申请渠道;4.安排申请流程,按步骤进行;5.研究用户需求,满足期望。电子邮箱申请的第一步是确定用户类型。1.确定用户类型,选择典型代表电子邮箱申请的第一步是确定用…

医疗健康行业获客难?来看这位区域总经理的业绩增长破局之道

在医疗健康行业摸爬滚打多年的老张是一家知名医疗器械公司的区域总经理。 医疗健康行业的客户生态复杂多样,主要分为终端医院与渠道两大核心板块。对于终端医院,老张采取的是稳健而深入的列名经营策略,通过持续不断的学术交流、积极参与行业展会以及国家、省市等各级别的招投…

Taro 鸿蒙技术内幕系列(一):如何将 React 代码跑在 ArkUI 上

作者:京东零售 朱鸣辉基于 Taro 打造的京东鸿蒙 APP 已跟随鸿蒙 Next 系统公测,本系列文章将深入解析 Taro 如何实现使用 React 开发高性能鸿蒙应用的技术内幕 背景 随着鸿蒙操作系统的快速发展,开发者们期待将现有跨平台应用迁移到鸿蒙平台。Taro作为一个流行的跨平台开发框…

设置弹性域缺省值

如何设置辅助属性默认值,并在单据上直接带出默认值?

在网络图中什么是ES、EF、LS、LF、TF、FF

在项目管理中的网络图中,ES(Early Start)、EF(Early Finish)、LS(Late Start)、LF(Late Finish)、TF(Total Float)和FF(Free Float)是关键路径方法(Critical Path Method,CPM)中用于描述活动和事件时间的重要概念。1. 在网络图中ES、EF、LS、LF、TF、FF的基本介…