Browse Source

Cli update command no longer runs yarn & gulp if there is no change

pull/1646/head
Yunus Emre Kalkan 7 years ago
parent
commit
27c8d72964
  1. 34
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

34
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); var fileList = _packageJsonFileFinder.Find(rootDirectory);
if (fileList.Any()) if (!fileList.Any())
{ {
_npmGlobalPackagesChecker.Check(); return;
}
foreach (var file in fileList) _npmGlobalPackagesChecker.Check();
{
UpdatePackagesInFile(file);
foreach (var file in fileList)
{
UpdatePackagesInFile(file, out var needsYarnAndGulp);
if (needsYarnAndGulp)
{
RunYarnAndGulp(file); 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 fileContent = File.ReadAllText(file);
var packageJson = JObject.Parse(fileContent); var packageJson = JObject.Parse(fileContent);
var abpPackages = GetAbpPackagesFromPackageJson(packageJson); var abpPackages = GetAbpPackagesFromPackageJson(packageJson);
@ -60,7 +66,12 @@ namespace Volo.Abp.Cli.ProjectModification
foreach (var abpPackage in abpPackages) foreach (var abpPackage in abpPackages)
{ {
UpdatePackage(file, abpPackage); TryUpdatePackage(file, abpPackage, out var updated);
if (updated)
{
needsYarnAndGulp = true;
}
} }
var modifiedFileContent = packageJson.ToString(Formatting.Indented); var modifiedFileContent = packageJson.ToString(Formatting.Indented);
@ -68,7 +79,7 @@ namespace Volo.Abp.Cli.ProjectModification
File.WriteAllText(file, modifiedFileContent); 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); var version = GetLatestVersion(package);
@ -76,8 +87,13 @@ namespace Volo.Abp.Cli.ProjectModification
if (versionWithPrefix == (string)package.Value) if (versionWithPrefix == (string)package.Value)
{ {
updated = false;
return; return;
} }
else
{
updated = true;
}
package.Value.Replace(versionWithPrefix); package.Value.Replace(versionWithPrefix);
@ -92,7 +108,7 @@ namespace Volo.Abp.Cli.ProjectModification
} }
var version = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} version"); var version = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} version");
_fileVersionStorage[package.Name] = version; _fileVersionStorage[package.Name] = version;
return version; return version;

Loading…
Cancel
Save