typescript tsconfig.json包括exclude not working

时间:2017-10-15 12:01:13

标签: typescript tsconfig

我有一个网络项目

我有文件夹

src/app/shared/models
src/app/shared/services
src/app/shared/types

其中每一个都是包含文件夹或文件的子文件夹,我想要排除这些文件夹,所以我试过了:

  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts",
    "src/app/shared/**/*"
  ]

它无法正常工作,即使"src/app/shared/*"无效,我该怎么做?

我的tsconfig.json现在:

{
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2015",
      "dom"
    ]
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts",
    "src/app/shared/**/*"
  ]
}

由于

1 个答案:

答案 0 :(得分:1)

要验证是否要使用“ exclude”排除某些文件的第一件事是,要从编译中排除它们,还需要使用“ /// <reference path="..." />”排除所有文件”指令或对其的“ import”引用

tsconfig.json将文件夹变成“项目”。在不指定任何“ exclude”或“ files”条目的情况下,包含tsconfig.json的文件夹及其所有子目录中的所有文件都包含在您的编译中。

tsconfig.json自动包含不会嵌入模块分辨率。如果编译器将文件标识为模块导入的目标,则无论先前步骤中是否排除了文件,该文件都将包含在编译中。

  

includeexclude属性采用类似glob的文件模式的列表。支持的全局通配符为:

     
      
  • *匹配零个或多个字符(不包括目录分隔符)
  •   
  • ?匹配任何一个字符(目录分隔符除外)
  •   
  • **/递归匹配任何子目录
  •   
     

使用files属性时,它将获取相对或绝对文件路径的列表。

设置“ baseUrl”会通知编译器在哪里找到模块。假定所有具有非相对名称的模块导入都相对于baseUrl。

使用“ include”属性可以过滤包含“ exclude”的文件。但是,如果您使用“ files”属性明确包含文件,则无论“ exclude”如何都将始终包含这些文件。