如何使用多个 tsconfig 文件(具有冲突的编译器选项)?
how to use multiple tsconfig files (with conflicting compiler options)?
我的代码库包含两个打字稿项目:
- 对于 React 网络应用程序
- 网络工作者
网络工作者代码库是我 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.
启用和管理子项目之间的依赖关系
我的代码库包含两个打字稿项目:
- 对于 React 网络应用程序
- 网络工作者
网络工作者代码库是我 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.
启用和管理子项目之间的依赖关系