Angular-cli忽略tsconfig.json

时间:2017-03-31 09:13:34

标签: angular typescript angular-cli angular4

使用

"@angular/cli": "^1.0.0"

@angular/cli忽略tsconfig.json

项目编辑/删除tsconfig.json

为什么?

2 个答案:

答案 0 :(得分:8)

您的项目在没有 $ROOT/tsconfig.json的情况下编译的原因是@angular/cli支持根目录中的多个应用程序;您的(单个)应用正在使用$ROOT/src/tsconfig.app.json和您的测试套件$ROOT/src/tsconfig.spec.json进行编译。根tsconfig.json适用于目录中的所有应用。删除它只是删除了可能与许多应用程序一起使用的全局 tsconfig

为了更清楚地了解这一点,请查看.angular-cli.json。一个属性app支持多个应用程序的数组,但默认配置仅适用于一个应用程序。如@angular/cli/lib/config/schema.json中所述,app支持“此项目中不同应用程序的属性。”

"app": [{
  "root": "src"
  ...
  "tsconfig": "tsconfig.app.json",
  "testTsconfig": "tsconfig.spec.json"
}]

使用这个数组,您可以拥有任意数量的Angular应用程序,每个应用程序都有自己特定的TypeScript设置。

此外,@angular/cli的命令支持具有--app标志的多个应用程序。 ng serve --app foo将投放foo个应用,而ng serve --app bar将投放bar个应用。此标记也适用于ng buildng e2eng ejectng testng xi18n。要将新应用添加到现有$ROOT目录,请使用ng new

tsconfig不仅适用于代码编辑器和tslint。它适用于项目中的所有应用程序。它的工作原理相当复杂,从the source code可以清楚地看出,其中有许多json文件都有"extends": "../../../tsconfig.json"这样的行。

答案 1 :(得分:5)

看似愚蠢,angular-cli的tsconfig.json文件位于src/tsconfig.app.json

编辑器将使用根tsconfig.json(例如vscode)。