如何使用多个 tsconfig 文件(具有冲突的编译器选项)?

how to use multiple tsconfig files (with conflicting compiler options)?

我的代码库包含两个打字稿项目:

网络工作者代码库是我 public/ 文件夹的一部分。这意味着在同一个工作区中有两个打字稿项目。我怎样才能使它与 vs-code 一起工作?

到目前为止,我的问题基本上是重复的:

接受的答案解释了如何设置基本配置然后扩展它:

//tsconfig.worker.json:

{
  "extends": "./tsconfig.json",
  "exclude": [
    "src/app"
  ]
}

但这对我来说不起作用。对于 worker.ts 我需要一个不同于 React 应用程序的 lib 配置。
可以在我的 tsconfig.worker.json 中覆盖该配置并使用新设置进行编译。但是对于自动补全和错误高亮,vs-code只使用了tsconfig.json,与webworker源码不兼容

在与项目相同的目录中为每个项目提供自己的 tsconfig.json,如下所示:

└── src
    ├── tsconfig.json
    ├── shared
    │   ├── index.ts
    │   └── tsconfig.json
    ├── backend
    │   ├── index.ts
    │   └── tsconfig.json
    └── frontend
        ├── index.ts
        └── tsconfig.json 

将所有通用设置放在根 tsconfig.json 中,将项目特定的设置放在它自己的 tsconfig.json 中。不要将它们命名为 tsconfig.json.

以外的任何名称

确保每个依赖配置扩展根配置并具有正确的路径,例如:

{
    "extends": "../tsconfig.json"
    .
    .
    .
}

每个子项目的 rootDir 设置默认为 ./,这意味着它们将很好地独立/封装。但是,如果根配置更改了该值,您可能必须在每个 tsconfig.json.

中覆盖它

您可以使用项目引用as described in this answer.

启用和管理子项目之间的依赖关系