From d44ffe45fe1ef761242d8deac2d526277a0bf906 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 7 Apr 2021 15:04:07 +0300 Subject: [PATCH 1/4] CLI: manually handle to remove cmskit related packages from package.json dependencies resolves https://github.com/volosoft/volo/issues/6247 --- ...emoveDependencyFromPackageJsonFilesStep.cs | 34 ++++++++++++++++ .../Templates/App/AppTemplateBase.cs | 40 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs new file mode 100644 index 0000000000..031c647201 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs @@ -0,0 +1,34 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps +{ + public class RemoveDependencyFromPackageJsonFilesStep : ProjectBuildPipelineStep + { + private readonly string _packageJsonFilePath; + private readonly string _packageName; + + public RemoveDependencyFromPackageJsonFilesStep(string packageJsonFilePath, string packageName) + { + _packageJsonFilePath = packageJsonFilePath; + _packageName = packageName; + } + + public override void Execute(ProjectBuildContext context) + { + var packageJsonFile = context.Files.Find(f => f.Name == _packageJsonFilePath); + + if (packageJsonFile == null) + { + return; + } + + var packageJsonObject = JObject.Parse(packageJsonFile.Content); + var dependenciesObject = (JObject) packageJsonObject["dependencies"]; + + dependenciesObject?.Remove(_packageName); + + packageJsonFile.SetContent(packageJsonObject.ToString(Formatting.Indented)); + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 286283f22c..ef801a8800 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -173,6 +173,46 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { context.Symbols.Add("CMS-KIT"); } + else + { + RemoveCmsKitDependenciesFromPackageJsonFiles(steps); + } + } + + private static void RemoveCmsKitDependenciesFromPackageJsonFiles(List steps) + { + var adminCmsPackageInstalledProjectsPackageJsonFiles = new List + { + "/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json" + }; + + var publicCmsPackageInstalledProjectsPackageJsonFiles = new List + { + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public.Host/package.json", + }; + + var unifiedCmsPackageInstalledProjectsPackageJsonFiles = new List + { + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json" + }; + + foreach (var packageJsonFile in adminCmsPackageInstalledProjectsPackageJsonFiles) + { + steps.Add(new RemoveDependencyFromPackageJsonFilesStep(packageJsonFile, "@volo/cms-kit-pro.admin")); + } + + foreach (var packageJsonFile in publicCmsPackageInstalledProjectsPackageJsonFiles) + { + steps.Add(new RemoveDependencyFromPackageJsonFilesStep(packageJsonFile, "@volo/cms-kit-pro.public")); + } + + foreach (var packageJsonFile in unifiedCmsPackageInstalledProjectsPackageJsonFiles) + { + steps.Add(new RemoveDependencyFromPackageJsonFilesStep(packageJsonFile, "@volo/cms-kit-pro")); + } } private bool IsCmsKitSupportedForTargetVersion(ProjectBuildContext context) From 1bcae8c9d2ef0ffc072a29b26b59f067be22bae8 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 7 Apr 2021 15:05:24 +0300 Subject: [PATCH 2/4] rename RemoveDependencyFromPackageJsonFilesStep to RemoveDependencyFromPackageJsonFileStep --- ...esStep.cs => RemoveDependencyFromPackageJsonFileStep.cs} | 4 ++-- .../Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/{RemoveDependencyFromPackageJsonFilesStep.cs => RemoveDependencyFromPackageJsonFileStep.cs} (82%) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs similarity index 82% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs index 031c647201..0bec6d26d2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFilesStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs @@ -3,12 +3,12 @@ using Newtonsoft.Json.Linq; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { - public class RemoveDependencyFromPackageJsonFilesStep : ProjectBuildPipelineStep + public class RemoveDependencyFromPackageJsonFileStep : ProjectBuildPipelineStep { private readonly string _packageJsonFilePath; private readonly string _packageName; - public RemoveDependencyFromPackageJsonFilesStep(string packageJsonFilePath, string packageName) + public RemoveDependencyFromPackageJsonFileStep(string packageJsonFilePath, string packageName) { _packageJsonFilePath = packageJsonFilePath; _packageName = packageName; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index ef801a8800..ea5822568b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -201,17 +201,17 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App foreach (var packageJsonFile in adminCmsPackageInstalledProjectsPackageJsonFiles) { - steps.Add(new RemoveDependencyFromPackageJsonFilesStep(packageJsonFile, "@volo/cms-kit-pro.admin")); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFile, "@volo/cms-kit-pro.admin")); } foreach (var packageJsonFile in publicCmsPackageInstalledProjectsPackageJsonFiles) { - steps.Add(new RemoveDependencyFromPackageJsonFilesStep(packageJsonFile, "@volo/cms-kit-pro.public")); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFile, "@volo/cms-kit-pro.public")); } foreach (var packageJsonFile in unifiedCmsPackageInstalledProjectsPackageJsonFiles) { - steps.Add(new RemoveDependencyFromPackageJsonFilesStep(packageJsonFile, "@volo/cms-kit-pro")); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFile, "@volo/cms-kit-pro")); } } From a8e6b380aefdd3e804374610613a9e58e0c6667c Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 7 Apr 2021 15:08:10 +0300 Subject: [PATCH 3/4] Update RemoveDependencyFromPackageJsonFileStep.cs --- .../Steps/RemoveDependencyFromPackageJsonFileStep.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs index 0bec6d26d2..ab7cff8c56 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +using System.Linq; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps @@ -16,7 +17,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps public override void Execute(ProjectBuildContext context) { - var packageJsonFile = context.Files.Find(f => f.Name == _packageJsonFilePath); + var packageJsonFile = context.Files.FirstOrDefault(f => f.Name == _packageJsonFilePath); if (packageJsonFile == null) { From 82aafd847c22d54c8ba82960db3611fa67656847 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 7 Apr 2021 17:29:31 +0300 Subject: [PATCH 4/4] Update AppTemplateBase.cs --- .../Templates/App/AppTemplateBase.cs | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index ea5822568b..52a06f7117 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -184,19 +184,15 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App var adminCmsPackageInstalledProjectsPackageJsonFiles = new List { "/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json", - "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json" + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json" }; var publicCmsPackageInstalledProjectsPackageJsonFiles = new List { "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/package.json", - "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public.Host/package.json", - }; - - var unifiedCmsPackageInstalledProjectsPackageJsonFiles = new List - { - "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json", - "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json" + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public.Host/package.json" }; foreach (var packageJsonFile in adminCmsPackageInstalledProjectsPackageJsonFiles) @@ -208,11 +204,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFile, "@volo/cms-kit-pro.public")); } - - foreach (var packageJsonFile in unifiedCmsPackageInstalledProjectsPackageJsonFiles) - { - steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFile, "@volo/cms-kit-pro")); - } } private bool IsCmsKitSupportedForTargetVersion(ProjectBuildContext context)