From 27c8d729644f9fef64fdd1688426bd33afc34686 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 16 Aug 2019 09:44:11 +0300 Subject: [PATCH] Cli update command no longer runs yarn & gulp if there is no change --- .../ProjectModification/NpmPackagesUpdater.cs | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 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 bad90be5c3..58b88d87a3 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 @@ -34,21 +34,27 @@ namespace Volo.Abp.Cli.ProjectModification { var fileList = _packageJsonFileFinder.Find(rootDirectory); - if (fileList.Any()) + if (!fileList.Any()) { - _npmGlobalPackagesChecker.Check(); + return; + } - foreach (var file in fileList) - { - UpdatePackagesInFile(file); + _npmGlobalPackagesChecker.Check(); + foreach (var file in fileList) + { + UpdatePackagesInFile(file, out var needsYarnAndGulp); + + if (needsYarnAndGulp) + { RunYarnAndGulp(file); } } } - protected virtual void UpdatePackagesInFile(string file) + protected virtual void UpdatePackagesInFile(string file, out bool needsYarnAndGulp) { + needsYarnAndGulp = false; var fileContent = File.ReadAllText(file); var packageJson = JObject.Parse(fileContent); var abpPackages = GetAbpPackagesFromPackageJson(packageJson); @@ -60,7 +66,12 @@ namespace Volo.Abp.Cli.ProjectModification foreach (var abpPackage in abpPackages) { - UpdatePackage(file, abpPackage); + TryUpdatePackage(file, abpPackage, out var updated); + + if (updated) + { + needsYarnAndGulp = true; + } } var modifiedFileContent = packageJson.ToString(Formatting.Indented); @@ -68,7 +79,7 @@ namespace Volo.Abp.Cli.ProjectModification File.WriteAllText(file, modifiedFileContent); } - protected virtual void UpdatePackage(string file, JProperty package) + protected virtual void TryUpdatePackage(string file, JProperty package, out bool updated) { var version = GetLatestVersion(package); @@ -76,8 +87,13 @@ namespace Volo.Abp.Cli.ProjectModification if (versionWithPrefix == (string)package.Value) { + updated = false; return; } + else + { + updated = true; + } package.Value.Replace(versionWithPrefix); @@ -92,7 +108,7 @@ namespace Volo.Abp.Cli.ProjectModification } var version = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} version"); - + _fileVersionStorage[package.Name] = version; return version;