为什么 Vite 会创建两个 TypeScript 配置文件 : tsconfig. json 和 tsconfig.node.json?

1,695 阅读1分钟

您需要两个不同的 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" }]
}