核心是svelte.config.js、语言服务、调试器三者对齐;否则断点进不去<script>、$lib导入标红、$:无类型推导。右下角显示“HTML”是链路断裂第一信号,需手动绑定.svelte到Svelte语言模式,卸载冲突插件,确保svelte.config.js存在且含vitePreprocess(),tsconfig.json中types含"svelte"并配置paths,launch.json中sourceMapPathOverrides设为"webpack:///src/": "${webRoot}/src/"。

VSCode 开发 SvelteKit 项目,核心不是装一堆插件,而是让 svelte.config.js、语言服务、调试器三者对齐;否则路由跳转正常但断点进不去 <script>,$lib 导入标红,$: 声明没类型推导——全是配置错位导致的“假问题”。
为什么 .svelte 文件右下角总显示 “HTML”?
这是整个链路断裂的第一信号,后续所有提示、跳转、断点都会失效。
- 点击右下角语言模式 → 选 Svelte → 点右侧齿轮图标 → Configure File Association for '.svelte',绑定到
svelte - 检查是否误装了
svelte-vscode或Svelte Language Server:这些旧/第三方插件会与官方Svelte for VS Code(发布者必须是sveltejs)冲突,直接卸载 - 确认项目根目录存在
svelte.config.js(哪怕内容为空),否则插件拒绝激活语言服务 - 改完后必须执行
Cmd+Shift+P→Svelte: Restart Language Server,仅Reload Window不够
svelte.config.js 配错,$lib 和 $state 就全标红
这个文件不只是给构建用的,VSCode 的类型服务、svelte-check、甚至 Prettier 插件都靠它读取预处理规则和路径别名。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- SvelteKit 项目必须用
vitePreprocess(),不能写sveltePreprocess()(后者是旧 Webpack 时代遗留) - 确保已安装
@sveltejs/kit,否则vitePreprocess会报Cannot find module - 若用 TypeScript,
tsconfig.json中compilerOptions.types必须含"svelte",否则$state、$derived等全局类型不可见 - 要支持
import Comp from '$lib/Comp.svelte',tsconfig.json的paths得配"$lib/*": ["src/lib/*"],且include包含"src/**/*"
断点进不了 <script> 块?多半是 launch.json 没映射对源码路径
Vite 默认生成 sourcemap,但 VSCode 调试器仍按 Webpack 路径规则找源文件,不手动覆盖就找不到 .svelte 里的 JS 区域。
- 开发服务器必须先运行:
npm run dev(端口默认http://localhost:5173),再按F5启动调试 -
launch.json中sourceMapPathOverrides必须设为:"webpack:///src/*": "${webRoot}/src/*" - 不要用
type: "pwa-chrome"直连 —— 它容易因file://协议失败;推荐用type: "node-terminal"启动调试终端,再跑npm run dev - 如果断点停在空白行或跳过整个
<script>,检查浏览器地址栏是否确实是http://localhost:5173,而非file://或其他端口
路由文件改了,但页面没更新?别急着清缓存
SvelteKit 的文件系统路由是静态解析的,但 VSCode 编辑器本身不会监听 src/routes 下新增/重命名的 +page.svelte 文件并自动刷新语言服务。
- 新增
src/routes/blog/[slug]/+page.svelte后,VSCode 可能仍提示Cannot find module—— 执行Cmd+Shift+P→TypeScript: Restart TS Server -
+layout.svelte或+error.svelte修改后没生效,检查是否漏写了export let data(SSR 场景下,服务端需显式接收data属性) - 路由参数
[slug]在load函数里取不到?确认+page.js或+page.ts中用了export async function load({ params }),而不是旧式export const load = async ({ params }) => { ... }
最常被忽略的点:SvelteKit 的 SSR 调试依赖完整的三段式对齐——svelte.config.js 告诉语言服务怎么解析,tsconfig.json 告诉 TypeScript 哪些路径可导入,launch.json 告诉调试器源码在哪。少一段,表面能跑,实则处处掉链子。


















