web-dev-qa-db-ja.com

dotnet公開後のangularプロダクションリリース

同じフォルダーでホストされているAngular 5SPAのASP.NETCore2.0アプリケーションがあります。

現在IISに展開するために、次のことを行います。

// First publish the release configuration
dotnet publish -c release 
// Now delete the wwwroot directory as it is pulished with ng build
rm -r bin/release/netcoreapp2.0/publish/wwwroot
// Build the prod version of the angular app
ng build --prod
// copy the new wwwroot folder into the publish folder
cp -R wwwroot bin/release/netcoreapp2.0/publish/

これは非常に混乱しています... dotnetpublishにngbuild --prodを実行するように指示するにはどうすればよいですか?

プロジェクトのcsprojファイルに次のものを追加してみました。

<Target Name="AngularBuild" AfterTargets="Publish">
  <Exec Command="npm run build --prod" />
</Target>
7
Evonet

これらすべてのコマンドを1つずつ一緒に呼び出すタスクランナーまたはカスタムスクリプトを使用できます。

たとえば、package.jsonでカスタムnpmスクリプトを定義できます。

{
  ...
  "scripts": {
    "apppublish": "dotnet publish -c release && npm run build --prod",
    ...
  }
}

アプリを公開する必要がある場合は、npm run apppublishを呼び出すだけです。

3
Set

.csprojで

<Target Name="Build Angular" Condition="'$(Configuration)'=='Release'" BeforeTargets="Build">
  <Message Text="* * * * * * Building Angular App * * * * * *" Importance="high"/>
  <Exec Command="npm run build"/>
</Target> 

そしてpackage.jsonで

"scripts": {
  "build": "npm run build --prod"
}
2
Capdiem