Jea*_*eri 6 typescript tsconfig
我有一个项目,我需要从中构建两种不同的产品。说我有
./src/advanced
./src/basic
Run Code Online (Sandbox Code Playgroud)
所有代码都是用 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"]
Run Code Online (Sandbox Code Playgroud)
现在来构建basic我拥有的产品
tsconfig-basic.json
{
"extends": "./tsconfig-base.json",
"compilerOptions": {
"noEmitHelpers": true
},
"files": [
"basic/main.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
我编译如下
$> tsc -p ./tsconfig-basic.json
Run Code Online (Sandbox Code Playgroud)
现在我有2个问题
1)basic/main.ts找不到该文件,./basic/main.ts它应该是./src/basic/main.ts. 为什么baseUrl没有前置?
2) 如果 (1) 是固定的,则编译后的文件不会写入./dist. 为什么"outDir": "./dist这里没有使用来自基本文件?当我将它添加outDir到tsconfig-basic.json 时,它按预期工作
无论如何,看起来在这里扩展不起作用,或者与我预期的不同。任何建议如何改进我的设置?
1)baseUrl仅适用于 webpack 等打包工具。请参阅有关TypeScript/10866 的讨论
2)不幸的是,这是设计使然。请参阅问题TypeScript/29172
引用 Wesley Wigham(微软员工):
基于路径的编译器选项(outDir、outFile、rootDir、include、files)是从它们所在的配置文件中解析出来的)
您将需要为您拥有的outDir每个tsconfig.json文件重复。
| 归档时间: |
|
| 查看次数: |
10011 次 |
| 最近记录: |