前段时间开发新的项目,由于没有技术上的限制,所以选择了vite+vue3+ts来开发新的项目,一开始用vite来开发新项目过程挺顺利,确实比vue2+webpack的项目高效些(为什么选择vite),但是过了一段时间后,不过怎么操作页面修改页面都无法及时刷新预览页面,各种纠结。

        我觉得这是一个坑,为啥,请看下面的描述

        

         按理说,我们无需要关心这些额外的配置,但是现在确实影响到了我们的开发体验,官网上也没明确描述,仔细想想是什么原因导致了无法热更新的问题,因为刚搭建完工程开发的时候确实是可以热更新的,仔细想了想发现好像是添加完路由出现这个问题的,猜想如果没有路由是不是可以热更新呢,于是在App.vue中修改代码发现确实可以及时热更新,现在可以基本上可以确定是路由问题的啦,各位可以自己试下。

        怎么解决呢, 网上基本的解决方案是:router 路由中名称和引入文件路径及文件名需要保证大小写一致,但是我仔细对比了下,发现我项目中路由引用的路径名称没有写错,再次陷入思考,到底是啥原因,那么只有可能是引入组件的方式不一致(因为我的路由页面特别简单只引入了一个页面),于是将路由引入的方式由静态的改为动态的,管用了,但是想不明白,问题确实解决了。

  静态的写法(不刷新)

import Index from '@/views/index.vue'
const routes = [
  {
    path: '/', component: Index
  }
]

   动态的写法(刷新)

const routes = [
  {
    path: '/', component: () => import('@/views/index.vue')
  }
]

 至此,我的问题解决,下面来看其他导致没有热更新的问题

1、vite.config.ts没有配置热更新为false,改正

server: {
    hmr: true,
    //vue3 vite配置热更新不用手动刷新
 }

2、一次性出现了过多的错误,这种情况一般出现在我们从别的地方复制一大段代码然后修改,即便是把所有的错误都解决了,热更新也失效,这种情况得重启服务。

3、长时间修改页面未重启过服务也会导致热更新失效,这种情况也得重启服务。

4、一些配置文件的修改也不会实时更新,需要我们重启服务

changed tsconfig file detected: E:\****\tsconfig.json - Clearing cache and forcing full-reload to ensure TypeScript is compiled with updated config values.

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐