使用
"@angular/cli": "^1.0.0"
@angular/cli
忽略tsconfig.json
该项目编译得很好编辑/删除tsconfig.json
这是为什么?
使用
"@angular/cli": "^1.0.0"
@angular/cli
忽略tsconfig.json
该项目编译得很好编辑/删除tsconfig.json
这是为什么?
您的项目编译没有 $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 build
、ng e2e
、ng eject
、ng test
和ng xi18n
。要将新应用添加到现有$ROOT
目录,请使用ng new
.
根tsconfig
不仅适用于代码编辑器和tslint
. 它适用于您项目中的所有应用程序。从源代码中可以清楚地看出,这在幕后是如何工作的相当复杂,其中有许多 json 文件,其中包含"extends": "../../../tsconfig.json"
.
尽管看起来很愚蠢,但 angular-cli 的tsconfig.json
文件位于内部src/tsconfig.app.json
tsconfig.json
编辑器(例如 vscode)将使用根目录。