如何在 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
。
有没有办法做到这一点?
TypeScript 2.1 添加了配置继承,现在应该按照您使用它的方式工作。
在单个项目中,无法将不同的编译器选项应用于不同的文件。 如果文件夹遵循简单的依赖项结构,则可以将多个项目与项目引用一起使用。 否则,您可以编写一个脚本,该脚本在整个项目上运行两次tsc
(一次使用更严格的选项,一次使用更宽松的选项(,并将第一次运行innerFolder
的错误和第二次运行在所有其他文件上的错误组合在一起;请参阅此答案以获取有关如何按文件名过滤错误的一些灵感。 这对您的 IDE 没有帮助;在那里,您可能只需要使用较宽松的选项。
一旦我只需要严格检查的规则,我就可以使用tslint
来实现它。
extends
从tslint
做我所需要的,它会下降,覆盖内部目录中的规则。
使用以下内容就足够了:
tsc -p tsconfig.test.json
并设置您的"测试"脚本以调用 tsc 的用法
另请参阅: 如何仅为构建排除打字稿中的特定文件?