Search code examples
angularasp.net-corevisual-studio-codedotnet-cli

Run angular production release after dotnet publish


I have an ASP.NET Core 2.0 application with and Angular 5 SPA hosted in the same folder.

Currently to deploy to IIS, I do the following:

// 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/

This is very convulted ... how can I tell dotnet publish to run ng build --prod?

I have tried adding the following into my project csproj file:

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

Solution

  • You may use any task runner or custom script that will call all these commands together one by one.

    For example, you may define a custom npm script in package.json:

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

    and then just call npm run apppublish when you need to publish app.