使用する
"@angular/cli": "^1.0.0"
@angular/cli
はtsconfig.json
を無視します
プロジェクトは、tsconfig.json
を細かく編集/削除するだけでコンパイルされます。
何故ですか?
ばかげているように見えるかもしれませんが、angular-cliのtsconfig.json
ファイルはsrc/tsconfig.app.json
内にあります。
ルートtsconfig.json
は、エディター(vscodeなど)によって使用されます。
プロジェクトがwithout$ROOT/tsconfig.json
でコンパイルされる理由は、@angular/cli
がmultipleルートディレクトリ内のアプリ。 (単一の)アプリは$ROOT/src/tsconfig.app.json
でコンパイルされ、テストスイートは$ROOT/src/tsconfig.spec.json
でコンパイルされます。ルートtsconfig.json
は、ディレクトリ内のallアプリに適用されます。それを削除すると、多くのアプリで使用される可能性のあるglobaltsconfig
が削除されただけです。
これをより明確に理解するには、.angular-cli.json
を参照してください。 1つのプロパティapp
は複数のアプリケーションの配列をサポートしますが、デフォルトの構成は1つのアプリケーションのみです。 @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
だけのものではありません。プロジェクト内のすべてのアプリにグローバルに適用されます。 ソースコード から明らかなように、これが内部でどのように機能するかはかなり複雑です。ここには、"extends": "../../../tsconfig.json"
などの行を持つ多数のjsonファイルがあります。