您需要两个不同的 TS 配置,因为该项目使用两个不同的执行 TypeScript 代码的环境:
- 您的应用程序(
src
文件夹)在浏览器中定位(将运行) - Vite 本身(包括它的配置)在您的计算机上运行在 Node 内,这是完全不同的环境(与浏览器相比),具有不同的 API 和约束
所以这两个环境有两种不同的配置和两组不同的源文件......
您可能不想删除tsconfig.node.json
但您可能可以将其重命名为tsconfig.vite.json
使其目的更明确
tsconfig.node.json
{
"compilerOptions": {
"composite": true,
"module": "esnext",
"moduleResolution": "node"
},
"include": ["vite.config.ts"]
}
tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"useDefineForClassFields": true,
"module": "esnext",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"sourceMap": true,
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"lib": ["esnext", "dom"],
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
"references": [{ "path": "./tsconfig.node.json" }]
}