自分なりに調べたので備忘として残しておきます。
angular.jsonとは
一言でいうとAngularアプリの設定を行うファイルとのこと。
ビルドの設定やフォルダ構成、sourceMap等の有効化など色々な設定を行っている。
ビルドのオプションをいじって任意のフォルダを作成する
デフォルトではAngular.jsonのassetsプロパティに定義されている通り、assetsフォルダの中身がdist/appフォルダ下に展開される。
angular.json
"assets": [
"src/assets",
"src/favicon.ico"
]
これを詳しく書くと以下のようになる
angular.json
"assets": [
{
"glob": "**/*",
"input": "src/assets/",
"output": "/assets/"
},
{
"glob": "favicon.ico",
"input": "src/",
"output": "/"
}
]
ここで、ビルド時にphpフォルダを作成して、ビルド前にsrc/phpファルダに入っているファイルをすべてphpフォルダにコピーするには以下の設定を加える。
inputにビルド前どこにファイルが入っているか、outputにはビルド後ファイルがどのフォルダに格納されるかを記述する。
globにはinputフォルダ内のどのファイルをoutputフォルダ内に格納するか、対象ファイルを記述する。ファイルはUnix形式のパスで指定することができる。(globライブラリによってパスを指定可能にしているとのこと)
angular.json
"assets": [
{
"glob": "**/*",
"input": "src/assets",
"output": "/assets/"
},
{
"glob": "favicon.ico",
"input": "src/",
"output": "/"
},
{
"glob": "**/*",
"input": "src/php/", // src/php配下のファイルを
"output": "/php/" // dist/SampleApp/php/にコピー
}
],