From 3b5b943838bb28651b0164a90036384e873a41c1 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 24 Nov 2023 11:42:29 +0300 Subject: [PATCH] CLI: Run bundle command for ms-pro template blazor ui. --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 2 +- .../Commands/ProjectCreationCommandBase.cs | 51 ++++++++++++++----- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 676b42081f..a0ffe974bd 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -111,7 +111,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien var skipBundling = commandLineArgs.Options.ContainsKey(Options.SkipBundling.Long) || commandLineArgs.Options.ContainsKey(Options.SkipBundling.Short); if (!skipBundling) { - await RunBundleForBlazorWasmOrMauiBlazorTemplateAsync(projectArgs); + await RunBundleInternalAsync(projectArgs); } await ConfigurePwaSupportForAngular(projectArgs); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 3e83cd818d..197fdb592b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -418,26 +418,49 @@ public abstract class ProjectCreationCommandBase } } - protected async Task RunBundleForBlazorWasmOrMauiBlazorTemplateAsync(ProjectBuildArgs projectArgs) + protected virtual async Task RunBundleInternalAsync(ProjectBuildArgs projectArgs) { - if ((AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName)) - && projectArgs.UiFramework is UiFramework.Blazor or UiFramework.MauiBlazor) + if (!ShouldRunBundleCommand(projectArgs)) { - var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor; - var message = isWebassembly ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor"; - Logger.LogInformation($"{message}..."); + return; + } + + var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor; + var message = isWebassembly ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor"; + Logger.LogInformation(message + "..."); - await EventBus.PublishAsync(new ProjectCreationProgressEvent - { - Message = message - }, false); + await EventBus.PublishAsync(new ProjectCreationProgressEvent + { + Message = message + }, false); + + var path = projectArgs.OutputFolder; + if (projectArgs.TemplateName == MicroserviceProTemplate.TemplateName) + { + path = Path.Combine(path, "apps"); + } + + var directory = Path.GetDirectoryName( + Directory.GetFiles(path, isWebassembly ? "*.Blazor.csproj" : "*.MauiBlazor.csproj", SearchOption.AllDirectories).First() + ); - var directory = Path.GetDirectoryName( - Directory.GetFiles(projectArgs.OutputFolder, isWebassembly? "*.Blazor.csproj" :"*.MauiBlazor.csproj", SearchOption.AllDirectories).First() - ); + await _bundlingService.BundleAsync(directory, true, projectType: isWebassembly ? BundlingConsts.WebAssembly : BundlingConsts.MauiBlazor); + } - await _bundlingService.BundleAsync(directory, true, projectType: isWebassembly ? BundlingConsts.WebAssembly : BundlingConsts.MauiBlazor); + protected virtual bool ShouldRunBundleCommand(ProjectBuildArgs projectArgs) + { + if ((AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName)) + && projectArgs.UiFramework is UiFramework.Blazor or UiFramework.MauiBlazor) + { + return true; } + + if (projectArgs.TemplateName == MicroserviceProTemplate.TemplateName && projectArgs.UiFramework is UiFramework.Blazor) + { + return true; + } + + return false; } protected async Task CreateInitialMigrationsAsync(ProjectBuildArgs projectArgs)