我有一个项目,需要构建两个不同的产品。假设我有:
./src/advanced
./src/basic
所有的代码都是用Typescript编写的,因此我需要使用tsc
进行编译。
因此,我创建了3个tsconfig文件。
tsconfig-base.json
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./src",
"lib": ["es2018", "dom", "dom", "dom.iterable", "es6"],
"importHelpers": true,
},
"exclude": ["node_modules", "**/*.spec.ts","dist"]
现在要构建我拥有的基础
产品
tsconfig-basic.json
{
"extends": "./tsconfig-base.json",
"compilerOptions": {
"noEmitHelpers": true
},
"files": [
"basic/main.ts"
]
}
我按照以下方式编译
$> tsc -p ./tsconfig-basic.json
现在我有两个问题:1) 文件
basic/main.ts
找不到,它正在寻找./basic/main.ts
,但应该是./src/basic/main.ts
。为什么没有加前缀的baseUrl
呢?2) 如果(1)被修复了,则编译文件不会被写入
./dist
。为什么不使用基本文件中的"outDir": "./dist"
?当我将outDir
添加到tsconfig-basic.json中时,它按预期工作。无论如何,看起来扩展在这里不起作用,或者与我期望的不同。有什么建议可以改善我的设置吗?