繁体   English   中英

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

[英]Why does Vite create two TypeScript config files: tsconfig.json and tsconfig.node.json?

我正在使用 Vite 创建 一个新的 React + TypeScript 项目

创建项目后,根文件夹中有两个 TypeScript 配置文件: tsconfig.jsontsconfig.node.json 这些是每一个的内容:

tsconfig.json

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

tsconfig.node.json

{
    "compilerOptions": {
        "composite": true,
        "module": "esnext",
        "moduleResolution": "node"
    },
    "include": ["vite.config.ts"]
}

为什么我们需要两个?

第二个是做什么的?

我可以删除第二个吗?

您需要两个不同的 TS 配置,因为该项目使用两个不同的执行 TypeScript 代码的环境:

  1. 您的应用程序( src文件夹)在浏览器内定位(将运行)
  2. Vite 本身(包括它的配置)在您的计算机上运行在 Node 内,这是完全不同的环境(与浏览器相比),具有不同的 API 和约束

所以这两个环境有两种不同的配置和两组不同的源文件......

不,您可能不想删除tsconfig.node.json但您可能可以将其重命名为tsconfig.vite.json以使其目的更明确

正如 Michal Levý 所提到的,这些是针对不同环境的不同配置。

您会注意到tsconfig.json包含一个“references”键,它指向一个包含tsconfig.node.json文件的数组。 如果您希望更改 vite tsconfig 的文件名,请务必更新此参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM