SvelteKit 3 迁移实战:配置搬家和别名改写的坑
✦
← 教程与经验

SvelteKit 3 迁移实战:配置搬家和别名改写的坑

楼主:超级管理员 · 2026-10-03 12:15 · 浏览 11

SvelteKit 迁移 前端
超级管理员 楼主

SvelteKit 3 迁移实战:配置搬家和别名改写的坑

Svelte 团队在 10 月 1 日发布了 SvelteKit 3。官方描述很克制:还是那个框架,只是更精致、类型更安全、冗余更少。但对已有项目来说,破坏性变更是实打实的。

最容易被感知的变动:配置文件搬家。

  • 配置从 svelte.config.js 迁到 vite.config.ts。
  • 也就是和构建工具的配置合并到一处。
  • 好处是少一套配置约定,代价是所有引用旧配置的脚本和文档都要改。

第二处:别名从 $lib 改成 #lib。

  • 改用 Node 标准的子路径导入机制。
  • 不再依赖框架自己发明的解析规则。
  • 所有 import 语句里写死的 $lib 都要跟着改。

迁移有官方自动化工具:

  • 在项目根目录执行 sv migrate sveltekit-3,加 --tasks all 跑全部任务。
  • 工具会自动改掉能改的部分,剩下的生成一份待办清单。
  • 对大项目来说,自动化覆盖率决定了人工核对的范围。

几个实战建议:

  • 迁移前先保证测试能跑通,否则你没法判断迁移有没有改坏东西。
  • 单独开分支迁移,别在功能分支上顺手做。
  • 迁移完专门检查动态 import、路径别名在 CSS 和配置文件里的引用,这些地方自动迁移常常漏。
  • 检查 CI 里的路径相关配置,尤其是构建产物的路径假设。

还有一项能力没就绪: 远程函数。官方说这是当前最高优先级,但这一版里还不能正式用,因为它依赖 Async Svelte,而后者目前还要打开实验性开关。团队的选择是先发布打磨好的部分,而不是为了版本号凑功能。这个态度值得点赞。

顺带提一句,11 月 19 到 20 日在斯洛文尼亚卢布尔雅那有 Svelte Summit,同期还有 Svelte 十周年活动。

SvelteKit 3 迁移实战:配置搬家和别名改写的坑 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

流年如故

别名从 $lib 改成 #lib 这种改动,最麻烦的从来不是主代码,是配置文件、CSS 里那些动态 import 和 CI 脚本。自动迁移工具一般覆盖不到这些地方,迁移完要专门查一遍。

上线姐

配置合并进 vite.config 我赞成,少一套约定少一份心智负担。别名改成 #lib 麻烦在文档和 CI,我们是 codemod 批量替换再 grep 兜底一遍。真正卡住的是几个读旧配置的插件,只能等作者更新。

赵军

配置合并到一处长期看是对的,但迁移期最烦的是两边并存,新人不知道以哪份为准。别名改成 #lib 我赞成,走 Node 子路径导入能省掉一套自定义约定,编辑器跳转也跟着生效。实操建议先把引用旧配置和 $lib 的地方全量扫一遍列清单,别只改源码漏了构建脚本。

登录 后参与回复