You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Svelte启动异常求助:新创建项目却加载已删除的旧项目

解决Svelte新项目启动后显示旧项目的问题

这问题我之前帮好几个开发者排查过,大概率是缓存或者开发服务器的端口复用问题,咱们一步步来排查解决:

1. 先排查浏览器缓存

浏览器很容易缓存静态资源(比如JS、CSS文件),哪怕你已经更新了项目,它还是会加载旧的缓存内容。试试这几个操作:

  • 强制刷新:Windows按Ctrl+Shift+R,Mac按Cmd+Shift+R
  • 打开无痕/隐私窗口访问地址,看看是否显示新项目
  • 直接清空浏览器的缓存(在浏览器设置里找到“清除浏览数据”,勾选缓存文件后删除)

2. 清理Svelte/Vite的开发缓存

Svelte现在默认用Vite作为构建工具,Vite和SvelteKit都会生成缓存文件,这些缓存可能残留了旧项目的内容:

  1. 先停止当前运行的开发服务器(按Ctrl+C终止进程)
  2. 删除项目目录下的这两个文件夹:
    • .svelte-kit(SvelteKit的构建缓存)
    • node_modules/.vite(Vite的依赖缓存)
  3. 重新执行npm run dev启动项目,看看是否正常显示新项目

3. 检查端口是否被旧进程占用

哪怕你删除了旧项目,旧项目的开发服务器可能还在后台偷偷运行,占用了默认的5173端口,导致你访问的还是旧进程的服务:

  • Windows系统
    1. 打开命令提示符,执行netstat -ano | findstr :5173(5173是Vite默认端口,如果你的端口不一样,替换成对应的)
    2. 找到输出里的进程ID(PID),然后执行taskkill /PID <你的PID> /F强制杀死进程
  • Mac/Linux系统
    1. 打开终端,执行lsof -i :5173
    2. 找到PID后,执行kill -9 <你的PID>强制终止进程
  • 杀死旧进程后,重新启动新项目的npm run dev,再访问地址试试

4. 刷新本地DNS缓存(可选,概率较低)

如果上面的方法都没用,可能是本地DNS缓存导致的异常,试试刷新DNS:

  • Windows:执行ipconfig /flushdns
  • Mac:执行sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder(需要输入管理员密码)
  • Linux(systemd系统):执行systemd-resolve --flush-caches

一般来说,前三个方法就能解决问题了,先从浏览器缓存开始试,这个最容易排查~

内容的提问来源于stack exchange,提问作者Paul Lopez

火山引擎 最新活动