glob - typescript tsconfig.json include exclude không hoạt động
Tôi có một dự án web
Tôi có các thư mục
src/app/shared/models
src/app/shared/services
src/app/shared/types
Mỗi cái trong số đó là một thư mục con có các thư mục hoặc tệp bên trong, tôi muốn loại trừ những thư mục đó, vì vậy tôi đã thử:
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts",
"src/app/shared/**/*"
]
và nó không hoạt động, ngay cả "src/app/shared/*" cũng không hoạt động, Tôi có thể làm thế nào?
Tsconfig.json của tôi bây giờ:
{
"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/**/*"
]
}
Cảm ơn
Câu trả lời #1
Điều đầu tiên cần xem xét, nếu bạn quyết định sử dụng từ khóa “exclude” để liệt kê các tệp, là để loại bỏ chúng khỏi quá trình biên dịch, bạn cũng sẽ cần loại trừ bất kỳ tệp nào khác, mà bằng cách sử dụng chỉ thị ba dấu gạch chéo “/// ” hoặc câu lệnh “import” tham chiếu đến một tệp trong danh sách bị loại trừ của bạn.
tsconfig.json biến một thư mục thành một “dự án”. Nếu không chỉ định bất kỳ mục “exclude” hoặc “files” nào, tất cả các tệp trong thư mục chứa tsconfig.json và tất cả các thư mục con của nó sẽ được bao gồm trong quá trình biên dịch của bạn.
Việc bao gồm tự động tsconfig.json không nhúng giải quyết module. Nếu trình biên dịch xác định một tệp là mục tiêu của việc nhập module, nó sẽ được bao gồm trong quá trình biên dịch bất kể nó có bị loại trừ trong các bước trước đó hay không.
Các thuộc tính
includevàexcludenhận một danh sách các mẫu tệp giống glob. Các ký tự đại diện glob được hỗ trợ là:
*khớp với không hoặc nhiều ký tự (không bao gồm dấu phân cách thư mục)?khớp với bất kỳ một ký tự nào (không bao gồm dấu phân cách thư mục)**/khớp đệ quy với bất kỳ thư mục con nàoKhi sử dụng thuộc tính
files, nó nhận một danh sách các đường dẫn tệp tương đối hoặc tuyệt đối.
Thiết lập "baseUrl" thông báo cho trình biên dịch biết nơi tìm các module. Tất cả các câu lệnh nhập module có tên không tương đối đều được giả định là tương đối với baseUrl.
Các tệp được bao gồm sử dụng "include" có thể được lọc bằng cách sử dụng thuộc tính "exclude". Tuy nhiên, nếu bạn bao gồm các tệp một cách rõ ràng bằng cách sử dụng thuộc tính "files", chúng sẽ luôn được bao gồm bất kể "exclude".