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

React+Vite项目tsconfig.json配置报错:文件被include模式重复匹配

React + Vite项目tsconfig.json配置报错解决咨询

我的tsconfig.json配置

{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "lib": ["DOM", "DOM.Iterable", "ESNext"],
    "allowJs": false,
    "skipLibCheck": true,
    "esModuleInterop": false,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "ESNext",
    "moduleResolution": "Node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx",
    "baseUrl": "src"
  },
  "exclude": ["node_modules"],
  "include": ["src", "**/*.ts", "**/*.tsx", "src/**/*", "vite.config.mts"],
  "references": [{ "path": "./tsconfig.node.json" }]
}

报错信息

tsconfig.json:21:57
21   "include": ["src", "**/*.ts", "**/*.tsx", "src/**/*", "vite.config.mts"],
                                                           ~~~~~~~~~~~~~~~~~
File is matched by include pattern specified here.

已尝试操作

  • 检查tsconfig.json中的include模式
  • 将vite.config.mts从include数组中移除,但问题仍存在

咨询问题

  1. 如何解决该include模式相关的配置问题?
  2. 是否需要将vite.config.mts纳入include数组中?

解答

问题1:解决include重复匹配报错

你的include数组存在大量重复规则:

  • "src" 和 "src/**/*" 完全等价,都是匹配src目录下所有文件
  • "**/*.ts"、"**/*.tsx" 会匹配项目所有.ts/.tsx文件,和前面的"src"规则重复

TypeScript会检测到这种重复匹配并报错,只需简化include规则即可解决:
修改为最精简的有效配置:

"include": ["src/**/*"]

如果确实需要单独指定某些非src目录的文件,再按需添加,但要避免重复规则。

问题2:是否需要纳入vite.config.mts?

不需要。项目中tsconfig.node.json就是专门用来处理Vite配置这类Node环境脚本的(对应你配置里的references字段),主tsconfig.json负责处理前端业务代码,两者环境不同,强行把vite.config.mts加入主配置反而可能引发环境不兼容的问题,直接移除即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:55:06