You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code重启tsserver后仅显示当前打开文件错误,求排查方案

VS Code TypeScript工作区仅显示重启时打开文件的错误问题排查与解决

在VS Code中使用TypeScript工作区开发React应用时,出现以下异常:

  • 每次重启tsserver后,仅能看到重启瞬间处于打开状态的文件的错误提示,其余文件无任何错误显示。
  • 场景示例:重启时打开index.tsx,就只显示该文件的错误;关闭index.tsx打开app.tsx后重启tsserver,则仅显示app.tsx的错误,index.tsx及其他文件无错误提示。
  • 项目打包编译始终正常,无报错。

当前VS Code设置如下:

{
"editor.formatOnSave": true,
"[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typescript.updateImportsOnFileMove.enabled": "always",
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
},
"eslint.validate": [
    "javascript",
    "typescript"
],
"typescript.tsdk": "node_modules\\typescript\\lib", // Use Workspace Version for using plugins from tsconfig
"typescript.enablePromptUseWorkspaceTsdk": true,
"typescript.tsserver.experimental.enableProjectDiagnostics": true,
"typescript.tsserver.log": "verbose"
}

目前找到一个临时解决方法,但不清楚原理:

  • 在tsconfig.json同级目录创建空的dummy.ts文件
  • 启动VS Code后,若有.tsx文件打开会显示其错误;关闭该.tsx文件,打开dummy.ts后重启tsserver(通过Ctrl + P执行TypeScript: Restart TS Server),所有错误提示消失(但实际打包仍正常)

可能的原因与解决办法

1. 检查tsconfig.json的include/exclude配置

tsserver依赖tsconfig.json确定检查范围,若include未覆盖全部需要检查的文件,或exclude误排除了核心文件,会导致仅打开的文件被扫描:

  • 确保include覆盖所有源码目录,比如:
    "include": ["src/**/*", "types/**/*"]
    
  • 核对exclude配置,避免误排除src等关键目录。

2. 禁用tsserver实验性项目诊断

当前开启的typescript.tsserver.experimental.enableProjectDiagnostics是实验性功能,可能存在兼容性问题,导致全局诊断失效:

  • 将该配置改为false,重启VS Code和tsserver后观察:
    "typescript.tsserver.experimental.enableProjectDiagnostics": false
    

3. 重置TS Server缓存

tsserver缓存损坏可能引发异常行为:

  • 通过Ctrl + Shift + P执行TypeScript: Open TS Server Log,查看日志中是否有明确报错
  • 关闭VS Code,删除对应项目的缓存目录(路径随系统不同):
    • Windows:%APPDATA%\Code\User\workspaceStorage\下的项目缓存文件夹
    • macOS:~/Library/Application Support/Code/User/workspaceStorage/下的项目缓存文件夹
    • Linux:~/.config/Code/User/workspaceStorage/下的项目缓存文件夹
  • 重新打开项目并重启tsserver

4. 排查TS版本兼容性

你使用了工作区本地的TS版本(typescript.tsdk指向node_modules),若该版本与VS Code内置TS版本差异过大,可能引发冲突:

  • 尝试切换为VS Code内置TS版本:注释掉typescript.tsdk配置,重启tsserver后在右下角提示中选择"Use VS Code's Version"
  • 或更新工作区TS版本到与内置版本接近的稳定版

5. 检查ESLint与TS Server的冲突

ESLint的自动修复或范围配置可能与tsserver诊断逻辑冲突:

  • 暂时禁用editor.codeActionsOnSave中的source.fixAll.eslint,重启tsserver后观察全局错误提示是否恢复
  • 检查.eslintrc配置,确保files/include未限制仅检查打开的文件

内容的提问来源于stack exchange,提问作者Rmn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:07:29