webstorm 2023.2 起增强 solidjs 支持,但需手动启用语言服务:确保安装 solid-js 1.7+ 和 @types/node,配置 tsconfig.json 含 "jsx": "preserve" 与 "jsximportsource": "solid-js",组件用 .tsx 后缀且首字母大写,默认导出,并在 settings 中添加 solid-js 类型库,重启 ide 生效。

WebStorm 对 SolidJS 的支持在 2023.2 版本起有明确增强,但默认不会自动启用全部语言服务——多数“没提示”问题出在语言服务器未激活或类型定义未被识别,而不是插件缺失。
确认 SolidJS 语言服务已启用
WebStorm 2023.2+ 内置了对 SolidJS 的基础支持,但需手动触发语言服务加载。它不依赖独立插件,而是通过 TypeScript 语言服务 + solid-js 类型声明协同工作:
- 确保项目中已安装
solid-js和@types/node(若用 Node 环境);solid-js必须是 1.7+,旧版类型导出不兼容当前语言服务器 - 打开
Settings | Languages & Frameworks | JavaScript | Libraries,点击Add→Download...,搜索并安装solid-js类型库(即使已安装 npm 包,IDE 仍需显式注册) - 右下角状态栏找
Language Service图标(⚙️ 或 ?),点击后选Restart;若图标灰显,说明服务未启动,此时需检查 tsconfig.json 是否包含"jsx": "preserve"和"jsxImportSource": "solid-js"
tsconfig.json 必须显式配置 JSX 支持
WebStorm 的 SolidJS 提示严重依赖 TypeScript 配置是否合规。哪怕项目能正常构建,IDE 也可能静默跳过 JSX 解析:
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
-
tsconfig.json中必须存在以下两项(缺一不可):"jsx": "preserve"—— 告诉 TS 不编译 JSX,留给 Solid 运行时处理"jsxImportSource": "solid-js"—— 让 IDE 知道createEffect、createMemo等来自何处 - 如果使用 Vite,确认
vite.config.ts中的plugins包含solidPlugin(),否则 WebStorm 可能无法关联组件文件后缀(如.tsx) - 避免混用
jsx: "react"或jsx: "react-jsx",SolidJS 项目中这会导致类型推导完全失效,props、children等无任何提示
Solid 组件文件命名与导入路径影响提示范围
WebStorm 会根据文件扩展名和导入方式决定是否启用 Solid 特定语义分析。常见断点就在这里:
- 组件文件必须用
.tsx后缀(不是.jsx或.ts),且首字母大写(如Counter.tsx);小写文件名(counter.tsx)会被 IDE 当作普通模块,不触发 Solid 组件语法高亮和 props 提示 - 导入时使用默认导出:
import Counter from './Counter';,而非命名导出;Solid 的createStore、useContext等 hook 提示只在默认导出组件内部生效 - 若使用
index.tsx作为组件入口,确保其内容是export default function MyComponent() { ... },不能是export const MyComponent = () => ...,后者在部分 WebStorm 版本中无法识别为 Solid 组件上下文
为什么重启 IDE 后提示又消失了?
这不是缓存问题,而是语言服务状态丢失。WebStorm 在检测到项目结构变化(如新增 node_modules、修改 package.json)时,不会自动重载 Solid 相关服务:
- 每次新增/更新
solid-js或相关依赖后,必须手动执行File | Invalidate Caches and Restart...→ 选Invalidate and Restart - 不要仅靠
Ctrl+Alt+Y(重新索引),它不重置语言服务连接;只有完整重启才能让 TS Server 重新读取jsxImportSource - 如果提示只在部分文件生效,检查该文件是否被意外排除:右键文件 →
Mark as Plain Text被误勾选,或该目录被加到了Settings | Editor | File Types的 “Ignored files and folders” 列表里
最易忽略的是:SolidJS 提示不是“开个开关就全有”,它严格依赖 tsconfig.json、node_modules 类型声明、文件命名三者同时正确。少一个,createSignal 就只是个普通函数,props 就没有类型推导,IDE 不会报错,但也不会提示。










