如何在Typescript项目中使用内部config.json
?
为清楚起见:
我的根/config.json
如下:
{
"compilerOptions": {
"module": "commonjs",
"target": "es2017",
"inlineSourceMap": true,
"outDir": "./app/",
"lib": [
"es6"
],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"moduleResolution": "node",
"baseUrl": "./",
"noImplicitAny": true,
"skipLibCheck": true,
"paths": {
"*": [
"types/*"
]
}
},
"include": [
"./src/**/*.ts"
]
}
我想拥有一个/innerFolder/config.json
,其中包含以下内容:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"noImplicitReturns": true,
"noUnusedParameters": true,
"noUnusedLocals": true,
"strictNullChecks": true,
}
}
之所以这样做,是因为我想对团队的代码进行重构,但是它很大,而且我不想一次更改所有文件。
我要逐个文件夹进行操作,并通过更改“锁定”文件夹。
根据文档,编译器查找父tsconfig.json
,而不查找特定的tsconfig.json
。
有没有办法做到这一点?
答案 0 :(得分:2)
TypeScript 2.1 added configuration inheritance 现在应该可以按照您的使用方式工作了。
答案 1 :(得分:1)
在一个项目中,无法将不同的编译器选项应用于不同的文件。如果您的文件夹遵循简单的依赖关系结构,则可以将多个项目与project references一起使用。否则,您可以编写一个脚本,该脚本在整个项目上运行tsc
两次(一次使用更严格的选项,一次使用宽松的选项),并将第一次在innerFolder
上运行的错误与第二次在所有其他文件上运行;有关如何按文件名过滤错误的一些启发,请参见this answer。这对您的IDE没有帮助;在那里,您可能只需要使用宽松的选项即可。
答案 2 :(得分:0)
一旦我只需要严格检查的规则,便可以使用tslint
来实现。
extends
中的 tslint
恰好满足了我的需要,它会覆盖内部目录中的规则。