我正在使用Visual Studio Code,并且具有相当普通的项目结构:

├── client/
│   ├── tsconfig.json
├── shared/
├── server/
│   ├── tsconfig.json
├── project.json

这两个tsconfig文件具有不同的设置(例如client/目标ES5下的一个,server/目标ES6下的一个)。请注意,根目录中没有tsconfig。

问题是我希望共享目录包含在两个项目中。我无法使用tsconfig来执行此操作,因为exclude选项不允许我在比tsconfig.json更高的目录中包含一个文件夹,而使用files时,我必须不断使文件列表保持最新不支持glob。

请注意,我可以通过将共享文件夹添加到tsc中来进行编译,我想要的是Visual Studio Code IDE能够识别智能感知等共享代码。

是等待filesGlob的唯一选择吗?

最佳答案

使用单个tsconfig.json作为根。然后将其扩展到每个项目(backend tsconfig.server.json,frontend tsconfig.webpack.json)。

  • tsconfig.json include: ['src']以确保在IDE中对所有文件进行类型检查
  • 后端tsconfig.server.json exclude: ['src/app']前端文件
  • 前端:tsconfig.webpack.json exclude: ['src/server']后端文件

  • 资料夹结构
    ├── src/
    │   ├── app/    < Frontend
    │   ├── server/ < Backend
    │   ├── common/ < Shared
    ├── tsconfig.json
    ├── tsconfig.server.json
    ├── tsconfig.webpack.json
    

    配置文件
    tsconfig.json
    {
      "compilerOptions": {
        "noImplicitAny": true,
        "strictNullChecks": true
      },
      "include": [
        "src"
      ]
    }
    
    tsconfig.webpack.json
    {
      "extends": "./tsconfig.json",
      "exclude": [
        "src/app"
      ]
    }
    
    tsconfig.server.json
    {
      "extends": "./tsconfig.json",
      "exclude": [
        "src/server"
      ]
    }
    

    更多

    Example lesson

    关于typescript - 如何在vs代码中使用多个tsconfig文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37579969/

    10-11 11:09