angular-cli 7.1.2で確認しました。
ng newで生成されるプロジェクトのangular.jsonの中身について、よく使う項目の調査です。
ルートオブジェクト
-
$schema
このファイルに関するJSON Schemaの定義ファイル
"./node_modules/@angular/cli/lib/config/schema.json"
固定
https://github.com/angular/angular-cli/blob/master/packages/angular/cli/lib/config/schema.json -
version
"1" 固定 -
cli
生成時にはない。
ngコマンド全般に対するデフォルトオプションを設定できる。 -
schematics
生成時にはない。
generate系のコマンドライン引数のデフォルトを設定できる。
また、ngコマンドで生成するものを拡張していける(自作可)。 -
newProjectRoot
"projects"
ng generate libraryした際の保存先フォルダ -
defaultProject
複数のprojectがある場合のデフォルトを指定する
ng generateやng buildする際にproject名を指定していない場合に利用される -
projects
プロジェクト名をキーにした各プロジェクトの詳細設定がある。
cliの中身
| 項目名 | 説明 |
|---|---|
| defaultCollection | schematicsのデフォルトを設定する |
| packageManager | "npm", "cnpm", "yarn"からパッケージマネージャーを設定する |
| warnings | ※1 |
※1 warningsの中身
| 項目名 | 説明 |
|---|---|
| versionMismatch | グローバルとローカルのバージョン違いの警告を表示する |
| typescriptMismatch | typescriptのバージョンの警告を表示する |
projectsの中身
| 項目名 | 説明 |
|---|---|
| cli | ルートオブジェクトと同様 |
| schematics | ルートオブジェクトと同様 |
| prefix | generateするものに対してつくprefix |
| root | プロジェクトのrootになるフォルダ |
| sourceRoot | assetsやindex.htmlがあるソースのフォルダ |
| projectType | "application", "library"から選択する |
| architect | 名称をキーにした詳細設定 ※2 |
| targets | 名称をキーにした詳細設定 ※2 |
※2 architectとtargetsはどちらか一つ。デフォルトではarchitectのみ。
※2 architectとtargetsの中身
| 項目名 | 説明 |
|---|---|
| builder | builderの設定。 |
| @angular-devkit/build-angular:app-shell | |
| @angular-devkit/build-angular:browser | |
| @angular-devkit/build-angular:dev-server | |
| @angular-devkit/build-angular:extract-i18n | |
| @angular-devkit/build-angular:karma | |
| @angular-devkit/build-angular:protractor | |
| @angular-devkit/build-angular:server | |
| @angular-devkit/build-angular:tslint | |
| options | builderに対するoption設定 |
| configurations | cliで実行時に切り替えするoption設定 |
build-angular:appShell の option設定の中身
| 項目名 | 初期値 | 説明 |
|---|---|---|
| browserTarget | ビルドターゲットとなるブラウザ | |
| serverTarget | app shellをレンダリングするサーバ | |
| appModuleBundle | サーバ用のAppModule | |
| route | / | レンダーするroute |
| inputIndexPath | ||
| outputIndexPath |
build-angular:browser の option設定の中身
| 項目名 | 初期値 | 説明 |
|---|---|---|
| assets | [] | アセットとして含めるファイルのリスト |
| main | エントリポイントになるスクリプトファイル | |
| polyfills | polyfill用のスクリプトファイル | |
| tsConfig | TypeScript設定ファイルのパス | |
| scripts | [] | グローバルな(index.htmlに直接読み込ませる)スクリプトファイルのリスト |
| styles | [] | グローバルなスタイルシートのリスト。extractCssがtrueだと単独のstyles.cssに書き出される。 |
| stylePreprocessorOptions | scss等のプリプロセッサのオプション(includePaths) | |
| optimization | 最適化する。{scripts: true, styles: false} というような個別設定も可能 | |
| fileReplacements | ファイル差し替え。主にenvironmentファイルに使われる。 | |
| outputPath | ビルドした生成物が出力されるフォルダ | |
| resourcesOutputPath | styleの出力フォルダ。outputPathからの相対。 | |
| aot | false | Ahead of Time compilation(事前コンパイル)を有効にする |
| sourceMap | true | sourceMapを出力する。{scripts: true, styles: true, hidden: false, vendor: true}というような個別設定も可能 |
| vendorSourceMap | false | ライブラリのsourceMapを出力する |
| evalSourceMap | false | in-file evalスタイルのsourceMapを出力する |
| vendorChunk | true | ライブラリだけで単独のファイルにする。ライブラリは変更頻度が低いため。 |
| commonChunk | true | 複数にまたがるコードを共通ファイルにする。 |
| baseHref | index.htmlにタグとして出力されるパス。サブフォルダで使うような場合に設定する。 | |
| deployUrl | 出力ファイルを読み込む際のパス。Urlという名前だけどパス指定。 | |
| verbose | false | ビルド時の出力 |
| progress | true | ビルド時の進捗度合い表示 |
| i18nFile | i18n(国際化)で利用するファイル | |
| i18nFormat | i18nで利用するフォーマット | |
| i18nLocale | i18nで利用するロケール | |
| i18nMissingTranslation | i18nで訳がない場合の出力 | |
| extractCss | false | グローバル指定のcssを展開する |
| watch | false | ファイル変更を監視して自動的に再ビルドする |
| outputHashing | "none" | 出力ファイル名にハッシュをつける。キャッシュバスター。"none","all","media","bundles" |
| poll | watchする際の監視間隔をミリ秒で設定 | |
| deleteOutputPath | true | ビルド前にoutputPathを削除する |
| preserveSymlinks | false | シンボリックリンクをリアルパスに変換する |
| extractLicenses | true | 利用ライブラリのライセンスファイルをまとめる |
| showCircularDependencies | true | 循環参照を表示する |
| buildOptimizer | false | aot利用時、@angular-devkit/build-optimizerを有効にする |
| namedChunks | true | 遅延読み込みのファイルに名前をつける |
| subresourceIntegrity | false | サブリソース。(よくわかっていない) |
| serviceWorker | false | ServiceWorkerのconfigを出力する |
| ngswConfigPath | ngsw-configファイルへのパス。ServiceWorker関連。 | |
| skipAppShell | false | app-shell関連をビルドしない |
| index | index.htmlファイルのパス | |
| statsJson | false | webpack-bundle-analyzer で使うstats.jsonの出力 |
| forkTypeChecker | true | TypeScriptの型チェッカーをforkモードで使う |
| lazyModules | [] | 遅延読み込みするNgModuleのリスト。大抵はrouterモジュールが自動的にやってくれる。 |
| budgets | [] | 生成ファイルのファイルサイズ制限を設定できる。気軽に巨大なライブラリをimportすると使わないコードが大量に含まれてしまったりするのを警告する。 |
build-angular:devServer の option設定の中身
| 項目名 | 初期値 | 説明 |
|---|---|---|
| browserTarget | 対象にするbuild | |
| port | 4200 | ポート。複数アプリ開発時に4201等違うポートに設定できる。 |
| host | "localhost" | ホスト。0.0.0.0等にすると同じLAN内の違うマシンからアクセスできる。別OSやスマホからの確認に。 |
| proxyConfig | proxyConfigファイルのパス | |
| ssl | false | SSL設定 |
| sslKey | SSL設定 | |
| sslCert | SSL設定 | |
| open | false | 初回ビルド時にデフォルトブラウザを開く |
| liveReload | true | ビルド時に自動リロードする |
| publicHost | ホスト名の制限 | |
| servePath | サーブするパス | |
| disableHostCheck | false | ホスト名のチェック |
| hmr | false | hot module replacementを有効にする |
| watch | true | ファイル変更を監視して自動的に再ビルドする |
| hmrWarning | true | hmr有効にする時の警告を表示する |
| servePathDefaultWarning | true | deploy-url/base-hrefが利用されている際の警告を表示する |
| optimization | 最適化する。{scripts: true, styles: false} というような個別設定も可能 | |
| aot | Ahead of Time compilation(事前コンパイル)を有効にする | |
| sourceMap | true | sourceMapを出力する。{scripts: true, styles: true, hidden: false, vendor: true}というような個別設定も可能 |
| vendorSourceMap | false | ライブラリのsourceMapを出力する |
| evalSourceMap | in-file evalスタイルのsourceMapを出力する | |
| vendorChunk | ライブラリだけで単独のファイルにする。ライブラリは変更頻度が低いため。 | |
| commonChunk | 複数にまたがるコードを共通ファイルにする。 | |
| baseHref | index.htmlにタグとして出力されるパス。サブフォルダで使うような場合に設定する。 | |
| deployUrl | 出力ファイルを読み込む際のパス。Urlという名前だけどパス指定。 | |
| verbose | ビルド時の出力 | |
| progress | ビルド時の進捗度合い表示 |