typescript - 扩展 tsconfig.json 文件似乎没有扩展任何东西
问题描述
我有一个项目,我需要从中构建两种不同的产品。说我有
./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"]
现在构建basic
我拥有的产品
tsconfig-basic.json
{
"extends": "./tsconfig-base.json",
"compilerOptions": {
"noEmitHelpers": true
},
"files": [
"basic/main.ts"
]
}
我编译如下
$> tsc -p ./tsconfig-basic.json
现在我有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(Microsoft 员工):
基于路径的编译器选项(outDir、outFile、rootDir、include、文件)从它们所在的配置文件中解析)
您将需要为您拥有outDir
的每个tsconfig.json
文件重复此操作。
推荐阅读
- javascript - 使用全新数据更新数组不会删除模板组件中先前呈现的数据
- leaflet - 传单如何显示与归属文本内联的地图比例?
- c++ - 合并 2 个已排序的链表
- javascript - 如何使单击单选按钮的行为与单击其容器的行为相同?
- javascript - 反应进度条不是动态的
- javascript - RMarkdown 输出时,.html 文件开头有数千个 JavaScript
- python - 如何将数组中的数字存储在块中并创建另一个数组或列表?
- c# - 我的 .Net Core 应用程序中可以有两种不同类型的 ILogger 吗?
- python-3.x - 通过基于距离对位置进行聚类,以计算成本低廉的方式替代 VRP
- python-3.x - 在定义的符号后向字符串列表添加空格