From 4a0a2ec7b7f1e73ebaf26e1a4fef72012a01f974 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 16 Aug 2019 13:46:37 +0300 Subject: [PATCH] Cli Update Command: Configure for Angular resolves https://github.com/abpframework/abp/issues/1645 --- .../ProjectModification/NpmPackagesUpdater.cs | 33 +++++++++++-------- .../PackageJsonFileFinder.cs | 9 ++++- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index 58b88d87a3..fd6f5be5d1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -43,18 +43,31 @@ namespace Volo.Abp.Cli.ProjectModification foreach (var file in fileList) { - UpdatePackagesInFile(file, out var needsYarnAndGulp); + UpdatePackagesInFile(file, out var packagesUpdated); - if (needsYarnAndGulp) + if (packagesUpdated) { - RunYarnAndGulp(file); + var fileDirectory = Path.GetDirectoryName(file).EnsureEndsWith(Path.DirectorySeparatorChar); + + RunYarn(fileDirectory); + + if (IsAngularProject(fileDirectory) == false) + { + Thread.Sleep(500); + RunGulp(fileDirectory); + } } } } - protected virtual void UpdatePackagesInFile(string file, out bool needsYarnAndGulp) + private bool IsAngularProject(string fileDirectory) + { + return File.Exists(Path.Combine(fileDirectory, "angular.json")); + } + + protected virtual void UpdatePackagesInFile(string file, out bool packagesUpdated) { - needsYarnAndGulp = false; + packagesUpdated = false; var fileContent = File.ReadAllText(file); var packageJson = JObject.Parse(fileContent); var abpPackages = GetAbpPackagesFromPackageJson(packageJson); @@ -70,7 +83,7 @@ namespace Volo.Abp.Cli.ProjectModification if (updated) { - needsYarnAndGulp = true; + packagesUpdated = true; } } @@ -122,14 +135,6 @@ namespace Volo.Abp.Cli.ProjectModification return abpPackages; } - protected virtual void RunYarnAndGulp(string file) - { - var fileDirectory = Path.GetDirectoryName(file).EnsureEndsWith(Path.DirectorySeparatorChar); - RunYarn(fileDirectory); - Thread.Sleep(500); - RunGulp(fileDirectory); - } - protected virtual void RunGulp(string fileDirectory) { Logger.LogInformation($"Running Gulp on {fileDirectory}"); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageJsonFileFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageJsonFileFinder.cs index ff26e765bb..b3138e1f87 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageJsonFileFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageJsonFileFinder.cs @@ -27,7 +27,14 @@ namespace Volo.Abp.Cli.ProjectModification { var directory = Path.GetDirectoryName(path); - return Directory.GetFiles(directory, "*.csproj", searchOption: SearchOption.TopDirectoryOnly).Any(); + if (directory == null) + { + return false; + } + + return + Directory.GetFiles(directory, "*.csproj", searchOption: SearchOption.TopDirectoryOnly).Any() || + File.Exists(Path.Combine(directory, "angular.json")); } } }