语言服务
WebStorm 依赖于 TypeScript、Vue、Astro、Svelte 及其他特定框架的语言服务来提供自动补全、代码分析与错误高亮。
配置内存处理
虽然 WebStorm 致力于与语言服务实现流畅集成,但仍可能出现由语言服务而非 WebStorm 本身引起的 out-of-memory 错误。
内存处理模式
当语言服务耗尽内存时,WebStorm 首先尝试重新启动该服务。 连续两次尝试失败后,语言服务将停止,WebStorm 会在状态栏的 语言服务 小部件中显示错误,并弹出错误消息。
为了防止 out-of-memory 错误或无缝解决该类问题,从而确保语言服务的稳定运行,您可以按以下两种模式配置内存处理:
自动增加内存
在此模式下,当即将发生 out-of-memory 错误时,WebStorm 会自动增加 1000MB 并在后台重新启动语言服务。
WebStorm 会以此方式静默运行,直到达成最大内存限制(占用最多 25% 的内存),届时语言服务将停止,WebStorm 将弹出错误信息。
如需了解改善当前状况的可能措施,请参阅 故障排除。
设置内存限制
在此模式下,您可以手动指定语言服务可用的最大内存值。 在达到该限制之前,WebStorm 会在每次发生 out-of-memory 错误时建议增加 1000MB 内存。
达到设定的内存限制后,语言服务将停止,WebStorm 会弹出错误消息。
如需了解改善当前状况的可能措施,请参阅 故障排除。
为 TypeScript 语言服务配置内存处理
按下 Ctrl+Alt+S 打开设置,并导航至 。
在 语言服务内存 区域选择内存处理模式:
选择 在可用情况下自动增加内存 以静默方式增加内存并重新启动语言服务。
或者,选择 设置内存限制 并指定语言服务可用的最大内存值。
如果指定的内存大小超出可用 RAM,WebStorm 会在工具提示中建议合适的值。
故障排除
当语言服务超出其分配的内存限制且无法继续处理工作负载时,将发生 out-of-memory 错误。 这通常由以下原因导致:
您当前处理的项目包含大量文件和依赖项。
在 IDE 设置中指定的最大内存限制不足以支持语言服务。
增加内存分配
按下 Ctrl+Alt+S 打开设置,并导航至 。
选择 设置内存限制 选项。
逐步增加内存限制,例如从 4GB 增加到 6GB,再到 8GB。 监控效果改善情况。
限制项目范围
包含过多文件或依赖的大型项目可能会导致语言服务负载过重。 要减少大型代码库的负载,请遵循 TypeScript 团队提供的 性能指南 ,特别是 使用项目引用与 配置 tsconfig.json 或 jsconfig.json部分的建议。
升级或降级
请确保您使用的是语言服务的最新版本。
WebStorm 附带了语言服务的内置版本。 然而,新版语言服务通常包含性能改进。 因此,建议您及时更新语言服务。
要安装语言服务的最新版本,请打开集成的 终端 (Alt+F12 ),然后根据所使用的语言服务和包管理器输入以下命令之一:
npm install --save-dev typescript或
pnpm add --save-dev typescript或
yarn add --dev typescriptnpm install --save-dev @vue/language-server或
pnpm add --save-dev @vue/language-server或
yarn add --dev @vue/language-servernpm install --save-dev svelte-language-server typescript-svelte-plugin或
pnpm add --save-dev svelte-language-server typescript-svelte-plugin或
yarn add --dev svelte-language-server typescript-svelte-pluginnpm install --save-dev @astrojs/language-server或
pnpm add --save-dev @astrojs/language-server或
yarn add --dev @astrojs/language-server如果更新语言服务后出现问题,建议将其降级至先前版本,以确认该问题是否由更新引起。
在 WebStorm 问题跟踪器中提交问题
如果问题仍然存在,请在 WebStorm 问题跟踪器中提交问题,并附加您的项目。 这将帮助我们更高效地复现并调查该问题。