Vite热更新失效的问题解决

 更新时间:2024年08月29日 11:17:30   作者:OooooYi  
本文主要介绍了Vite热更新失效的问题解决,原因是文件夹和文件名大小写不一致,下面就来解决一下次问题,感兴趣的可以了解一下

总结

  • 如果时刷新页面时候会更新,可以确认一下vite.config.js内有无配置server:{hmr:true}true为热更新,false为不热更新。
  • 文件地址引用问题,如:文件大小写问题、同一个文件夹下存在大驼峰小驼峰的命名方式的2种文件!
component: () => import('@/views/Console/index.vue') ❌
// Console文件夹名称是大写字母开头,而index.vue文件是小写,问题就在这里。
component: () => import('@/views/console/index.vue') ✅
// 对应文件夹和文件名称都是小写就不会有问题了

前言

事情是这样的,今天整理项目目录文件,准备把用vite搭建的项目中的目录结构重新归类一下,由于个人比较喜欢文件夹以大写驼峰式命名,整理文件目录时,把包括 views 文件夹下的路由文件也以这种命名方式整理,整理完后发现页面热更新失效了。

无法热更新尝试过的方法:

  • 在vite.config.ts 中开启 hmr 热更新
server:{
  hmr: true  // 配置自动刷新
}

重新run一下项目,更改页面样式后,页面还是不会热更新。

  • 怀疑vite插件导致无法热更新

因为项目中使用了 Element-plus 自动导入插件,我开始怀疑是自动导入插件搞的鬼,注释自动导入插件,在main.ts 使用全局导入方式使用 Element-plus ,重启项目,更改项目某个文件后返回浏览器,依然无法热更新。

  • 尝试依次卸载各种插件
  • 卸载 tailwindcss ,删除 tailwindcss 配置文件和样式
  • 重启项目后,修改页面,返回浏览器,还是无法热更新。
  • …卸载其它三方插件

是的,直到我把整个项目文件依赖的三方插件都删的差不多,也还是无法热更新…

我开始疯狂吐槽 vite 真垃圾,同时在网上寻找各种关于 vite 无法热更新的帖子,可偏偏是那些写着 **文件夹名称请严格注意大小写 **这句话,我没有放在心上,因为我觉得我的文件目录挺规范的 (虽然和前面那句注意大小写没有任何关系),然后就是打脸现场:

下面这张图是刚整理完目录后的目录以及路由文件:

image.png

发现什么问题了吗? 是的,因为目录名和文件名称大小写不一致,这么配置的路由表,所有页面都不会热更新了 !!

错误写法:

component: () => import('@/views/Console/index.vue')
// Console文件夹名称是大写字母开头,而index.vue文件是小写,问题就在这里。

正确写法:

component: () => import('@/views/console/index.vue')
// 对应文件夹和文件名称都是小写就不会有问题了

关于网上还有一种说法,如果你不想去破坏当前项目的 文件夹和文件名结构,可以只修改路由中目录名或文件名,按照我对上面这句话的理解,vite 编译时,识别文件夹和文件不区分大小写,所以我们只需要把路由表的文件名大小写改成一致就可以热更新了,但是,尝试过后,依然无法热更新。(当然你也可以试一下)

实在不想再瞎折腾了,我选择手动更改目录,把所有关于路由文件的文件夹和 .vue文件都改成了小写,终于,又可以正常热更新了:

image.png

关于对 文件夹名称严格注意大小写 这个问题的吐槽:

上面这句话本身就是一个坑,这里说的大小写,通常大家会理解为导入文件的时候目录只要对了就行,可事实上并非如此,如果使用 windows 系统开发,为了避免你碰到 vite 无法热更新的问题,我的建议是:舍弃驼峰命名规范,然后,请严格按照小写路径来创建路由页面文件夹和文件,多单词用 - 分隔。

到此这篇关于Vite热更新失效的问题解决的文章就介绍到这了,更多相关Vite热更新失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • vue-cli脚手架初始化项目各个文件夹用途

    vue-cli脚手架初始化项目各个文件夹用途

    这篇文章主要介绍了vue-cli脚手架初始化项目各个文件夹用途,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • Vue3之路由的元数据信息meta详解

    Vue3之路由的元数据信息meta详解

    这篇文章主要介绍了Vue3之路由的元数据信息meta详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • vue组件和iframe页面的相互传参问题及解决

    vue组件和iframe页面的相互传参问题及解决

    这篇文章主要介绍了vue组件和iframe页面的相互传参问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • vue实现选择商品规格功能

    vue实现选择商品规格功能

    这篇文章主要为大家详细介绍了vue实现选择商品规格功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 如何获取vue单文件自身源码路径

    如何获取vue单文件自身源码路径

    这篇文章主要介绍了如何获取vue单文件自身源码路径,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • vue+elementUI显示表格指定列合计数据方式

    vue+elementUI显示表格指定列合计数据方式

    这篇文章主要介绍了vue+elementUI显示表格指定列合计数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue 2 实现自定义组件一到多个v-model双向数据绑定的方法(最新推荐)

    vue 2 实现自定义组件一到多个v-model双向数据绑定的方法(最新推荐)

    有时候我们需要对一个组件绑定自定义 v-model,以更方便地实现双向数据,例如自定义表单输入控件,这篇文章主要介绍了vue 2 实现自定义组件一到多个v-model双向数据绑定的方法,需要的朋友可以参考下
    2024-07-07
  • Vue与Nuxt的区别及使用说明

    Vue与Nuxt的区别及使用说明

    这篇文章主要介绍了Vue与Nuxt的区别及使用说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • vue3 座位选座矩阵布局的实现方法(可点击选中拖拽调换位置)

    vue3 座位选座矩阵布局的实现方法(可点击选中拖拽调换位置)

    由于公司项目需求需要做一个线上设置考场相关的座位布局用于给学生考机排号考试,实现教室考场座位布局的矩阵布局,可点击选中标记是否有座无座拖拽调换位置横向纵向排列,本文给大家分享实现代码,一起看看吧
    2023-11-11
  • .vue文件 加scoped 样式不起作用的解决方法

    .vue文件 加scoped 样式不起作用的解决方法

    本篇文章主要介绍了.vue文件 加scoped 样式不起作用的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论