必须只装solidjs-community.solid-js-vscode插件并配置tsconfig.json的"jsx": "preserve"和"jsximportsource": "solid-js",再手动重启ts server;缺一即导致jsx不高亮、createsignal灰色、断点不触发。

SolidJS 项目在 VSCode 里跑不起来、断点不触发、JSX 不高亮、createSignal 灰色——90% 是插件装错或 tsconfig.json 配置不全,不是环境没搭好,也不是代码写错了。
只装 solidjs-community.solid-js-vscode,其他 Solid 插件全卸载
VSCode 搜索 “SolidJS” 会列出一堆插件,但只有 solidjs-community.solid-js-vscode 是当前唯一有效、官方社区维护的。它支持 createMemo、createStore、<show></show>、<for></for> 全套 API 和 JSX 类型推导。
-
solidjs.solidjs已废弃,不支持 TSX 和 Solid v2+,装了反而让createEffect标红 - Volar 的 Solid 分支是 Vue 专用 LSP 的魔改版,强行启用会导致 JSX 解析错乱
- 任何带
prettier-plugin-solid字样的插件都别装——它已合并进esbenp.prettier-vscode,重复安装会冲突
操作建议:打开扩展面板 → 搜索 solidjs-community → 安装 → 卸载所有其他 Solid 相关插件 → 重启 VSCode。
tsconfig.json 必须同时配 "jsx": "preserve" 和 "jsxImportSource": "solid-js"
VSCode 默认把 .tsx 当 React 处理,不显式声明 Solid 的 JSX 工厂,TypeScript 语言服务就“看不见”你的响应式函数。这两个字段缺一不可,且值必须严格匹配:
-
"jsx": "preserve":告诉 TS 别碰 JSX,留给@solidjs/vite-plugin-solid编译;设成"react"或"react-jsx"会触发 React 类型检查,直接导致React is not defined错误 -
"jsxImportSource": "solid-js":必须是这个字符串,不能写成"solid-js/web"或加路径;否则createMemo悬停无签名、<switch></switch>标签不着色
如果项目用 JS(jsconfig.json),同样要加这两项——JS 项目不支持 types 字段,但 JSX 相关配置依然生效。
改完配置后必须手动重启 TypeScript Server
VSCode 不会自动重载 TS 语言服务。哪怕你刚装完插件、刚保存 tsconfig.json,不重启就是白忙活。
- 快捷操作:按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)→ 输入Restart TS server→ 回车执行 - 验证是否生效:打开任意
.tsx文件,把光标停在createEffect上,看是否有完整函数签名提示;再输入<div>,确认标签有颜色而非纯白 <li>如果仍无效,检查项目根目录是否存在 <code>tsconfig.json或jsconfig.json——没这个文件,插件无法加载类型定义 - 确保已安装
Debugger for Edge(推荐)或Debugger for Chrome - 在终端运行
npm run dev(或vite),服务启动后访问http://localhost:5173(端口以实际为准) - 在
.vscode/launch.json中配置:"url": "http://localhost:5173"+"webRoot": "${workspaceFolder}" - 断点只在浏览器实际执行到该行时触发;右键 HTML → “Open in Default Browser” 会绕过调试流程,断点完全无效
调试前端页面需走 HTTP 服务,不能双击 HTML 打开
SolidJS 是构建型框架,依赖 Vite 启动开发服务器。VSCode 本身不运行前端代码,而是通过 Debugger for Edge/Chrome 控制浏览器调试。
注意:Solid Start 全栈项目的服务端调试是另一套逻辑(需 --mode ssr),这里只针对前端页面的常规调试。最常被忽略的是 Restart TS server 这一步——配置写对了,但没重启,所有提示和高亮照样失效。











