我有一个网络项目
我有文件夹
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/**/*"
]
}
由于
答案 0 :(得分:1)
要验证是否要使用“ exclude
”排除某些文件的第一件事是,要从编译中排除它们,还需要使用“ /// <reference path="..." />
”排除所有文件”指令或对其的“ import
”引用
tsconfig.json
将文件夹变成“项目”。在不指定任何“ exclude
”或“ files
”条目的情况下,包含tsconfig.json
的文件夹及其所有子目录中的所有文件都包含在您的编译中。
tsconfig.json
自动包含不会嵌入模块分辨率。如果编译器将文件标识为模块导入的目标,则无论先前步骤中是否排除了文件,该文件都将包含在编译中。
include
和exclude
属性采用类似glob的文件模式的列表。支持的全局通配符为:
*
匹配零个或多个字符(不包括目录分隔符)?
匹配任何一个字符(目录分隔符除外)**/
递归匹配任何子目录使用
files
属性时,它将获取相对或绝对文件路径的列表。
设置“ baseUrl
”会通知编译器在哪里找到模块。假定所有具有非相对名称的模块导入都相对于baseUrl。
使用“ include
”属性可以过滤包含“ exclude
”的文件。但是,如果您使用“ files
”属性明确包含文件,则无论“ exclude
”如何都将始终包含这些文件。