Angular-cli忽略tsconfig.json

zur*_*fyx 8 typescript angular-cli angular4 angular

运用

"@angular/cli": "^1.0.0"
Run Code Online (Sandbox Code Playgroud)

@angular/cli 忽略 tsconfig.json

该项目编译很好的编辑/删除 tsconfig.json

这是为什么?

jfm*_*cer 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"
}]
Run Code Online (Sandbox Code Playgroud)

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

另外,@angular/cli's命令支持带有--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".


zur*_*fyx 5

尽管看起来很愚蠢,但是angular-cli的tsconfig.json文件位于里面src/tsconfig.app.json

根目录tsconfig.json将由编辑器使用(例如vscode).