您的项目在没有$ROOT / tsconfig.json的情况下编译的原因是@ angular / cli支持根目录中的多个应用程序;您的(单个)应用程序正在使用$ROOT / src / tsconfig.app.json和您的测试套件使用$ROOT / src / tsconfig.spec.json进行编译. root tsconfig.json适用于目录中的所有应用程序.删除它只是删除了可能与许多应用程序一起使用的全局tsconfig.
原文链接:https://www.f2er.com/angularjs/140877.html为了更清楚地了解这一点,请查看.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 app提供服务,而ng serve –app bar将为bar应用提供服务.该标志也适用于ng build,ng e2e,ng eject,ng test和ng xi18n.要在现有的$ROOT目录中添加新应用,请使用ng new.
root tsconfig不仅适用于代码编辑器和tslint.它适用于项目中的所有应用程序.如何在引擎盖下工作是相当复杂的,从the source code可以清楚地看到,其中有许多json文件具有诸如“extends”:“../../../tsconfig.json”之类的行.