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 | ビルド時の進捗度合い表示 |