webpack打包处理字体图标、map4、map3、avi资源

news2024/11/23 12:41:37

一、字体图标资源的下载(阿里巴巴图标库)

iconfont官网:https://www.iconfont.cn/
在这里插入图片描述
这里你可以搜索你想要的字体图标,或者选择官方的图标库中查找,我这里就以官方的图标库为例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择几个加入购物车
在这里插入图片描述
点开购物车
在这里插入图片描述
这里有三个选项,根据需求随便选择,我这里演示一下添加到项目
在这里插入图片描述
点击确定以后会直接跳转到项目目录
在这里插入图片描述
点击下载到本地
在这里插入图片描述
解压打开文件
在这里插入图片描述
点击demo_index.html,运行到浏览器,这里面有教程怎么使用字体图标,如图:
在这里插入图片描述
这里我们就以font class 方式在我们的项目中使用一下,将iconfont.css文件引入到项目中的css文件夹下,
在这里插入图片描述
将这三个字体图标文件引入到fonts目录下
在这里插入图片描述
修改iconfonts.css的引入
在这里插入图片描述
将iconfonts.css引入到main.js中
在这里插入图片描述
到这里其实你可以不做任何配置,直接执行npx webpack打包命令,webpack默认是可以处理这些资源的如图:
在这里插入图片描述
然后我们去public/index.html下使用一下字体图标
在这里插入图片描述
运行效果如图:
在这里插入图片描述
成功使用了子图图标。

二、将字体图标资源输出到指定目录

在上面可以看到我们默认不做任何配置,字体图标资源是直接放在了dist目录下的,看着挺乱的,做如下配置就可以指定字体标的输出目录如图:
webpack.config.js->module->rules

{
        test: /\.(ttf|woff2?)$/,
        type: "asset/resource", // 以文件资源的形式输出
        generator: {
          filename: "media/[hash:8][ext][query]", // 输出到media目录中
        },
      },

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

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

完整代码:

// Node.js的核心模块,专门用来处理文件路径
const path = require("path");

module.exports = {
  // 入口
  // 相对路径和绝对路径都行
  entry: "./src/main.js",
  // 输出
  output: {
    // path: 文件输出目录,必须是绝对路径
    // path.resolve()方法返回一个绝对路径
    // __dirname 当前文件的文件夹绝对路径
    path: path.resolve(__dirname, "dist"),
    // filename: js文件输出文件名
    filename: "js/main.js",
    clean: true, // 自动将上次打包目录资源清空
  },
  // 加载器
  module: {
    rules: [
      {
        // 用来匹配 .css 结尾的文件
        test: /\.css$/,
        // use 数组里面 Loader 执行顺序是从右到左
        use: ["style-loader", "css-loader"],
      },
      {
        // 用来匹配.less结尾的文件
        test: /\.less$/,
        use: ["style-loader", "css-loader", "less-loader"],
      },
      {
        test: /\.s[ac]ss$/,
        use: ["style-loader", "css-loader", "sass-loader"],
      },
      {
        // 用来匹配图片文件
        test: /\.(png|jpe?g|gif|webp)$/,
        type: "asset",
        parser: {
          dataUrlCondition: {
            maxSize: 10 * 1024, // 小于10kb的图片会被base64处理
          },
        },
        generator: {
          // 将图片文件输出到 images 目录中
          // 将图片文件命名 [hash:8][ext][query]
          // [hash:8]: hash值取8位
          // [ext]: 使用之前的文件扩展名
          // [query]: 添加之前的query参数
          filename: "images/[hash:8][ext][query]",
        },
      },
      {
        test: /\.(ttf|woff2?)$/,
        type: "asset/resource", // 以文件资源的形式输出
        generator: {
          filename: "media/[hash:8][ext][query]", // 输出到media目录中
        },
      },
    ],
  },
  // 插件
  plugins: [],
  // 模式
  mode: "development", // 开发模式
};

执行npx webpack打包命令
在这里插入图片描述
运行public->index.html, 效果如图:
在这里插入图片描述

三、处理map4、map3、avi等其他资源

处理这些资源的配置和处理字体图标的配置是一样的,在处理字体的配置中加上正则就可以了如图:

     {
        test: /\.(ttf|woff2?|map4|map3|avi)$/,
        type: "asset/resource",
        generator: {
          filename: "static/media/[hash:8][ext][query]",
        },
      },

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

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

相关文章

关于libc++_shared.so 与libstdc++、libc++的链接关系

问题点1: -lstdc 与libc_shared.so的关联; 当在makefile中引入-lstdc时,其意味着调用动态库libstdc.so, Note:动态库libstdc.so 所对应的静态库是libstdc.a; Note:当前测试libstdc.so来自于Android12的./prebuilts/gcc/linux-x86/host/x8…

图数据库实践 - 如何将图数据库应用于供应链管理

导读 当前,随着全球化的加速和供应链的复杂性增加,供应链风险管理已经成为企业日常运营中不可忽视的重要方面。由于自然灾害、贸易保护、供应商更迭等因素的影响,供应链中的任何一个环节出现问题都可能导致生产中断、物流延误、成本增加&…

结构型设计模式06-桥接模式

🧑‍💻作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 桥接模式 1、桥接模式模式介绍 桥接模式(Bridge Pattern)是一种结构型模式之一…

ssm+java+mysql在线捐赠系统

本系统实现一个在线捐赠系统,分为用户和管理员两种用户。具体功能描述如下: 后台管理员模块包括: 1. 系统用户管理:此功能为超级管理员所有,普通管理员没有此权限,实现超级管理员可以对普通管理员信息的…

如和使用matlab进行求导 ,入门级教程

文章目录 问题如图所示运行结果如图代码分析完整代码完结撒花 问题如图所示 运行结果如图 代码分析 % 定义样本数量 n 500;这行代码定义了一个变量 n,它代表样本数量。这个变量在后面的代码中会被用到。 % 将 s 和 z 取值范围分成子区间的个数 num_intervals 40…

MySQL数据库迁移到ORACLE(持续更新)

1. 使用Oracle SQL Developer 官方 SQL Developer 23.1下载 选择Windows 64-bit with JDK 11 included安装 2.下载后解压,选择exe执行启动,启动后见图 3. 创建连接 默认支持创建Oracle连接(见下图),第三方连接需导入…

企业微信自建应用 挂载网页步骤

打开企业微信网页端,并登录 企业微信 https://work.weixin.qq.com/wework_admin/frame#index 点击应用管理 再次点击 应用,划到自建版块,点击创建应用 依次添加应用信息 点击创建应用, 添加指定网页信息

【Android Studio】Flamingo版本 更新gradle插件(AGP) 7.+到8.+

步骤 build.gradle(module) android {namespace //adddefaultConfig {applicationId }}AndroidManifest.xml 取消package属性 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/andr…

如何设置imagedraw.draw.text的字体大小

如何设置imagedraw.draw.text的字体大小 解决方法 虽然绘制框是draw.text() 但是这个函数没有提供修改的参数 解决方法 其实在字体中已经设置了大小了&#xff0c;他是按照图像调整的&#xff0c;我就直接修改了。 参考文章

QTableWidget自定义单元格

一 自定义QTableWidget 创建一个Widget项目&#xff0c;注释掉其中的ui->setupUi(this);使用自定义的布局。 #include "widget.h" #include "ui_widget.h" #include <QTableWidget> #include <QTableWidgetItem> #include <QLineEdit&…

Vue.js中的provide和inject方法是什么,有什么区别

Vue.js中的provide和inject方法 在Vue.js中&#xff0c;provide和inject是用于父组件向子组件传递数据的一种技术。通过使用provide和inject&#xff0c;我们可以在组件树中任意层次的组件之间进行数据的传递和共享&#xff0c;从而实现复杂的数据交互和状态管理的需求。本文将…

FANUC机器人MODBUS TCP通信配置方法(示教器实物演示)

FANUC机器人MODBUS TCP通信配置方法(示教器实物演示) 机器人一侧的配置: 如下图所示,示教器上找到设置—主机通讯, 如下图所示,选择第一项TCP/IP,点击详细进入配置界面, 如下图所示,设置机器人端口1#的IP地址为192.168.1.10,子网掩码:255.255.255.0 如下图所示…

【深入理解Linux内核锁】一、内核锁的由来

我的圈子&#xff1a; 高级工程师聚集地 我是董哥&#xff0c;高级嵌入式软件开发工程师&#xff0c;从事嵌入式Linux驱动开发和系统开发&#xff0c;曾就职于世界500强公司&#xff01; 创作理念&#xff1a;专注分享高质量嵌入式文章&#xff0c;让大家读有所得&#xff01; …

Java Web——使用Filter实现用户登录

实验名称&#xff1a; 使用Filter实现用户登录 实验目的&#xff1a; &#xff08;1&#xff09;了解什么是Filter。 &#xff08;2&#xff09;熟悉Filter的拦截过程和接口中的方法。 &#xff08;3&#xff09;掌握第一个Filter程序的编写方法。 &#xff08;4&#xf…

华为荣获上海市技术发明一等奖!基于CANN的视频增强平台以AI技术修复历史视频

2023年5月26日&#xff0c;上海市科学技术奖励大会隆重召开&#xff0c;由上海交通大学牵头&#xff0c;中国科学院深圳先进技术研究院、咪咕视讯科技有限公司、华为技术有限公司、上海云视科技股份有限公司、上海人工智能创新中心、上海媒智科技有限公司、上海数字电视国家工程…

Oracle免费云设置Multi-factor Authentication

申请Oracle免费云账号的时候系统就强迫用户设置Multi-factor Authentication&#xff0c;我选择了OracleMobileAuthenticator作为2次认证工具。刚开始用还顺利&#xff0c;但用了一段时间后Oracle登录页面迟迟未向OracleMobileAuthenticator发送通知&#xff0c;要等非常久App才…

大模型 LLM 综述, A Survey of Large Language Models

大模型 LLM 综述, A Survey of Large Language Models 一、概述 一般认为NLP领域的大模型>10 Billion参数(也有人认为是6B、7B, 工业界用, 开始展现涌现能力); 经典大模型有GPT-3、BLOOM、Flan-T5、GPT-NeoX、OPT、GLM-130B、PaLM、LaMDA、LLaMA等; 大模型时间线, 图来自…

chatgpt赋能python:Python绘图教程:将画笔移动到绝对位置的方法

Python绘图教程&#xff1a;将画笔移动到绝对位置的方法 Python作为一门高级编程语言&#xff0c;设计初衷是让编程变得简单、易学、易用&#xff0c;且支持多种编程范式&#xff0c;其中产生了让人惊艳的绘图模块——Turtle&#xff08;海龟&#xff09;。 在这篇教程中&…

Mybatis-plus代码生成器

官网&#xff1a;MyBatis-Plus (baomidou.com) 顾名思义&#xff0c;就是它为你生成代码&#xff0c;这里可以为你生成Entity、Mapper、MapperXML、Service、controller等各个模块的代码&#xff0c;极大的提升开发效率 环境&#xff1a;mysql8.0.24、mybatis-plus3.5.3.1、spr…

<<Linux多线程服务端编程>>学习之栏1————线程安全的对象生命期管理

线程安全的对象生命期管理 此章节开头的前两句话&#xff0c;把我点醒&#xff0c;原来思考功力可以这么深厚&#xff01;如下&#xff1a; 第一句话&#xff1a; 编写线程安全的类不是难事&#xff0c; 用同步原语保护内部状态即可&#xff1b; 第二句话&#xff1a; 但是对…