当我尝试重建项目时,TS不知何故认为构建文件夹内的文件也有要编译.它不尊重tsconfig.json
文件
rootDir
属性。这是我的tsconfig.json
{
"compilerOptions": {
"target": "es2020",
"module": "commonjs",
"allowJs": true,
"removeComments": true,
"strict": true,
"declaration": true,
"declarationMap": true,
"baseUrl": "./app",
"outDir": "./build",
"rootDir": "./app",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
目录结构
server
├── app
│ ├── models
│ └── routes
│ └── index.ts
├── server.ts
├── build
├── Dockerfile
├── node_modules
├── package.json
├── package-lock.json
└── tsconfig.json
这是第一个构建
build
├── routes
│ ├── index.d.ts
│ ├── index.d.ts.map
│ └── index.js
├── server.d.ts
├── server.d.ts.map
└── server.js
这是第二个版本
build
├── app
│ ├── routes
│ │ ├── index.d.ts
│ │ ├── index.d.ts.map
│ │ └── index.js
│ ├── server.d.ts
│ ├── server.d.ts.map
│ └── server.js
├── build
│ ├── routes
│ │ ├── index.d.ts
│ │ ├── index.d.ts.map
│ │ └── index.js
│ ├── server.d.ts
│ ├── server.d.ts.map
│ └── server.js
├── routes
│ ├── index.d.ts
│ ├── index.d.ts.map
│ └── index.js
├── server.d.ts
├── server.d.ts.map
└── server.js
问题是我没有提到include
属性!
在compilerOptions
之后添加"include": ["./app/**/*"]
可以解决此问题。