使用webpack打包的单页面项目如何设置favicon.icon文件

2023-10-31

上一篇文章:如何给网站设置favicon.ico图标,介绍了favicon.ico是什么,怎么配置,有哪几种方式。

但发现webpack打包的单页面项目却与普通项目不同,所以这篇文章介绍一下使用webpack打包的单页面项目如何设置favicon.icon文件

第一种方式:放在根目录的实现

首先,将favicon放在项目的根目录下

然后:

1、找到build下的webpack.dev.conf.js文件

new HtmlWebpackPlugin({
    filename: 'index.html',
    template: 'index.html',
    inject: true,
    favicon: path.resolve('favicon.ico') // 在此处设置
})

2、找到build下的webpack.prod.conf.js文件

 new HtmlWebpackPlugin({
     filename: config.build.index,
     template: 'index.html',
     inject: true,
     favicon: path.resolve('favicon.ico') // 在此处设置
})

最后:

执行npm run dev就可以看到网站标签上已经显示favicon图标

执行npm run build就可以看到打包的dist文件夹根目录中多了一个favicon.ico图标

第二种方式:link标签的实现

作为单页面应用其实是不需要第二种方式的,这里只是为了实现。

首先:

设置link标签

<link rel="shortcut icon" href="./img/logo.ico" type="image/x-icon">

其次:

ico的文件地址是./img/logo.ico,所以我们的目标就是要将ico文件在打包时放入到img文件夹中。

看起来很简单,直接在项目中的img文件夹中加入logo.ico不就行了

行吗?

打包完之后,在img文件夹中并没有logo.ico这个文件,为什么?

原因在单页面应用中,在index.html中的引用的文件并不会被打包,那怎么解决呢?

这时要用到一个pluginCopyWebpackPlugin,配置如下:

new CopyWebpackPlugin([
    {
        from: path.resolve(__dirname, '../src/img/logo.ico'),
        to: path.resolve(__dirname, '../dist/assets/img')
    }
])

最后:

执行npm run build就可以了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用webpack打包的单页面项目如何设置favicon.icon文件 的相关文章

随机推荐

  • 免费开源的100套Echarts大屏数据可视化模板分享

    我正在参加年度博客之星评选 请您帮我投票打分 您的五星好评都是对我的支持与鼓励 https bbs csdn net topics 611390199 介绍 100套大数据可视化炫酷大屏Html5模板 包含行业 社区 物业 政务 交通 金融
  • [备战蓝桥杯系列]蓝桥杯总结部分经典题题解分享

    文章目录 题目1 空间 题目2 数字三角形 题目3 刷题统计 题目4 阶乘约数 题目5 回路计数 本篇文章中的题解是我所写的代码且都是可以运行通过的 总结出的一篇相对来说比较清晰的个人题解 希望要备战蓝桥杯的小伙伴能够看到最后 由于本人要参
  • jetpack Compose 学习笔记

    目录 Modifier clickable 取消点击水波纹 LazyColum 相关 Modifier clickable 取消点击水波纹 modifier Modifier clickable onClick indication nul
  • Cellant:中文基站+google地图+轨迹记录+自制基站数据库

    资料名称 Cellant 中文基站 google地图 轨迹记录 自制基站数据库 0 a7Y6 H Z7e 国内领先的通信技术论坛MSCBSC 移动通信论坛6d x0k2 H g4F r j 资料作者 jesperzx k A5t C m t
  • qt中颜色对话框弹出时应用程序输出栏出现QWindowsWindow::setGeometry: Unable to set geometry 180x30+345+311 (frame: 202x8

    引言 在项目中点击按钮 弹出颜色选择对话框 但同时应用程序会在应用程序输出一栏中显示 QWindowsWindow setGeometry Unable to set geometry 180x30 345 311 frame 202x86
  • 创建并运行一个 Spring项目

    创建并运行一个 Spring项目 第一个 Spring 项目 步骤 1 创建一个 spring 项目 1 创建一个 maven 项目 2 添加 spring 框架支持 spring context spring beans 3 配置国内源
  • 手把手教你外排序

    排序总体来说分为两类 数据在内存中的叫做内排序 数据存在磁盘的叫外排序 一般而言 磁盘中存放的都是大型数据 所以 外排序主要是应用于磁盘中大型数据的 一 排序思想 对于外排序而言 因为待排的数据往往远大于内存容量 所以在排序时通常将数据切分
  • 如何在React Native中制作实时SoundCloud波形

    by Pritish Vaidya 通过Pritish Vaidya 如何在React Native中制作实时SoundCloud波形 How to make realtime SoundCloud Waveforms in React N
  • 13个应用案例,讲述最真实的大数据故事!

    大数据目前是当下最火热的词了 你要是不知道大数据这个概念 都不好意思在众人面前开口了 然而实际上很多人都对大数据的应用模糊不清 现在就让我们从下面十三个鲜明的大数据应用案例来了解下最真实的大数据故事 大数据改变的那些行业 大数据目前是当下最
  • DOM0,DOM2,DOM3事件处理方式区别

    引子 文档对象模型是一种与编程语言及平台无关的API Application programming Interface 借助于它 程序能够动态地访问和修改文档内容 结构或显示样式 W3C协会早在1988年就开始了DOM标准的制定 W3C
  • 微信小程序音频录制时bindtouchend不触发 音频录制代码

    问题描述 微信小程序项目 长按录制音频 手松开录制结束 长按时确实可以出发bindtouchstart 但是手松开之后不触发bindtouchend 从网上看很多说把bindtouchend换成bindtouchcancel 但是我这边依然
  • 如何给页面元素添加水印背景,在vue中怎么处理?

    您的三连支持是我创作的动力 这里写一个简单的给页面元素添加水印背景的方法 主要是添加文字行的 步骤1 在canvas中画出这个水印 这里我写的注释很详细了 不会的可以看看canvas的相关api 给一个页面元素添加水印背景 param te
  • Micropython ESP32 tcpserver 把玩【一】

    文章目录 测试TCP通信 解决供电问题 Hello World 传输文本文件 ESP32新建txt文件 ESP32运行的TCP SERVER程序 电脑上运行的TCP CLIENT程序 测试TCP通信 测试代码源自uPyCraft V1 1内
  • 【开启报名】大模型研讨会

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 以下内容来源于THU基础模型 基础模型研究中心 自 2018 年 BERT GPT 等语言模型问世以来 大规模语言模型取得了显著进步 对社会经济发展产生了深远影响 尽管如此 该领
  • jQuery与Ajax 面试题库(长期更新中...)

    jQuery 部分 JavaScript 是客户端脚本的标准语言 而 jQuery 使得编写 JavaScript 更加简单 你可以只用写几行的jQuery 代码就能实现更多的东西 它是最长被用到的 JavaScript 库之一 并且现在已
  • Puppeteer开发过程中遇到的问题及解决方案

    最新出了一个BUG 最新版的安装之后在MacOS M1芯片无法打开新窗口 工欲善其事必先利其器 请先检查本机是否安装NodeJS环境以及查阅API Google官方文档 https developers google com web too
  • Linux svn 命令每次都要输入密码o(╯□╰)o

    环境 Ubuntu 20 04 服务器ssh远程登录 所以运行不了钱包之类的图形工具管理密码 subversion 1 13 验证可行的步骤 1 删除原来的配置 rm subversion rf 2 执行一次svn命令输入密码后 会在目录
  • 为什么int类型可以直接赋值给char类型?

    1 为什么int类型变量不能直接赋值给char类型变量 char a 97 gt a 为char类型变量 a 赋值常量值 97 char b a 3 gt d 97 3 100 ASCII对应的字符为 d char c a 3 gt 报错
  • 入门:使用MySQL Workbench新增MySQL数据库并授权给新用户

    一 新增用户 打开MySQL Workbench可视化工具 点击左侧菜单的 Users and Privileges 链接 再点击右侧界面下方的 Add Account 按钮 输入新用户名 user kagome 主机连接地址 表示从任何地
  • 使用webpack打包的单页面项目如何设置favicon.icon文件

    上一篇文章 如何给网站设置favicon ico图标 介绍了favicon ico是什么 怎么配置 有哪几种方式 但发现webpack打包的单页面项目却与普通项目不同 所以这篇文章介绍一下使用webpack打包的单页面项目如何设置favic