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数组中移除,但问题仍存在
咨询问题
- 如何解决该include模式相关的配置问题?
- 是否需要将
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
相关产品推荐
相关产品推荐

