VSCode需安装官方svelte-vscode插件并配置tsconfig.json/jsconfig.json及launch.json中的resolveSourceMapLocations才能支持Svelte语法高亮、类型提示和调试。

VSCode 能直接支持 Svelte 开发,但必须手动安装插件并配置 TypeScript 支持——不装 svelte-vscode 插件,.svelte 文件连基础高亮都没有;不配 tsconfig.json 或启用 checkJs,类型提示和 $state/$props 推导基本失效。
怎么装对插件:只认准官方 svelte-vscode
VSCode 扩展市场搜 “Svelte” 会出来一堆第三方插件,但只有 svelte-vscode(作者是 sveltejs)是官方维护、持续同步 Svelte 5+ 新语法(比如 $state、$derived)的。其他插件要么停更,要么对 bind:this 或 let:xxx 指令解析错误。
- 在扩展面板搜索
svelte-vscode,点安装,重启 VSCode - 确认已启用:打开任意
.svelte文件,状态栏右下角应显示Svelte语言模式(不是Plain Text或HTML) - 如果仍无语法高亮,检查是否被其他插件覆盖:禁用所有非必要插件,再重试
为什么写了 <script> 还没类型提示?得配 tsconfig.json 或 jsconfig.json
Svelte 插件本身不提供类型推导,它依赖 TypeScript 语言服务。哪怕你写的是 .svelte + <script>(JS),也得让 TS 服务知道这个文件要参与检查。
- 项目根目录有
tsconfig.json:确保"include"包含"src/**/*"或明确列出"src/**/*.svelte" - 纯 JS 项目没
tsconfig.json:建一个jsconfig.json,内容至少包含:{ "compilerOptions": { "allowJs": true, "checkJs": true, "maxNodeModuleJsDepth": 2 }, "include": ["src/**/*"] } - 不配的话,
$props()返回值类型、bind:value的事件参数类型全标为any,IDE 不报错也不补全
调试跑不起来?关键在 launch.json 里指定 resolveSourceMapLocations
用 Vite 启动 Svelte 项目后,VSCode 默认断点打不进 <script> 块——因为 Svelte 编译生成的 JS 源码映射(source map)路径和实际文件结构不一致。
- 在项目
.vscode/launch.json中,添加调试配置:{ "type": "pwa-chrome", "request": "launch", "name": "Launch Chrome", "url": "http://localhost:5173", "webRoot": "${workspaceFolder}/src", "sourceMapPathOverrides": { "webpack:///src/*": "${webRoot}/*" }, "resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"] } -
resolveSourceMapLocations是 Svelte 5+ 必须项,漏掉就无法关联.svelte原文件和运行时代码 - 如果用 Firefox 调试,换
type: "pwa-firefox",其余字段保持一致
真正卡住人的往往不是“能不能装”,而是插件装了但没生效、TS 配置写了但路径没 include 到 .svelte、调试时断点灰掉却不知道要开 resolveSourceMapLocations——这三个地方错一个,整个开发体验就退化成纯文本编辑器。


















