打字稿 tsconfig.json 包括排除不工作

typescript tsconfig.json include exclude not working

我有一个网络项目

我有文件夹

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/**/*"
  ]
}

谢谢

首先要考虑的是,如果您决定使用“exclude”关键字来列出文件,为了将它们从编译过程中删除,您还需要排除任何其他文件,它通过使用三重斜杠指令“/// <reference path="..." />”或“import”语句引用排除列表中的文件。

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

tsconfig.json自动包含不嵌入模块解析。如果编译器将某个文件识别为模块导入的目标,则无论它是否在前面的步骤中被排除,它都将包含在编译中。

The include and exclude properties take a list of glob-like file patterns. The supported glob wildcards are:

  • * matches zero or more characters (excluding directory separators)
  • ? matches any one character (excluding directory separators)
  • **/ recursively matches any subdirectory

When using the files property it takes a list of relative or absolute file paths.

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

可以使用“exclude”属性 过滤使用“include”包含的文件。但是,如果您明确使用“files”属性 包含文件,则无论“exclude”.

如何,它们都将始终包含在内