Browse Source

fix Cli Switch-to-preview

resolves https://github.com/abpframework/abp/issues/4391
pull/4498/head
Yunus Emre Kalkan 6 years ago
parent
commit
d8a8d0f1e4
  1. 45
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

45
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

@ -54,11 +54,12 @@ namespace Volo.Abp.Cli.ProjectModification
_npmGlobalPackagesChecker.Check(); _npmGlobalPackagesChecker.Check();
var packagesUpdated = new ConcurrentDictionary<string, bool>(); var packagesUpdated = new ConcurrentDictionary<string, bool>();
async Task UpdateAsync(string file) async Task UpdateAsync(string file)
{ {
var updated = await UpdatePackagesInFile(file, includePreviews, switchToStable); var updated = await UpdatePackagesInFile(file, includePreviews, switchToStable);
packagesUpdated.TryAdd(file, updated); packagesUpdated.TryAdd(file, updated);
}; }
Task.WaitAll(fileList.Select(UpdateAsync).ToArray()); Task.WaitAll(fileList.Select(UpdateAsync).ToArray());
@ -66,23 +67,20 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
var fileDirectory = Path.GetDirectoryName(file.Key).EnsureEndsWith(Path.DirectorySeparatorChar); var fileDirectory = Path.GetDirectoryName(file.Key).EnsureEndsWith(Path.DirectorySeparatorChar);
if (IsAngularProject(fileDirectory)) if (includePreviews)
{ {
if (includePreviews) await CreateNpmrcFileAsync(Path.GetDirectoryName(file.Key));
{ RunNpmInstall(fileDirectory);
await CreateNpmrcFileAsync(Path.GetDirectoryName(file.Key)); }
} else if (switchToStable)
else if (switchToStable) {
{ await DeleteNpmrcFileAsync(Path.GetDirectoryName(file.Key));
await DeleteNpmrcFileAsync(Path.GetDirectoryName(file.Key)); RunYarn(fileDirectory);
}
} }
RunYarn(fileDirectory);
if (!IsAngularProject(fileDirectory)) if (!IsAngularProject(fileDirectory))
{ {
Thread.Sleep(500); Thread.Sleep(1000);
RunGulp(fileDirectory); RunGulp(fileDirectory);
} }
} }
@ -166,7 +164,8 @@ namespace Volo.Abp.Cli.ProjectModification
return File.Exists(Path.Combine(fileDirectory, "angular.json")); return File.Exists(Path.Combine(fileDirectory, "angular.json"));
} }
protected virtual async Task<bool> UpdatePackagesInFile(string filePath, bool includePreviews = false, bool switchToStable = false) protected virtual async Task<bool> UpdatePackagesInFile(string filePath, bool includePreviews = false,
bool switchToStable = false)
{ {
var packagesUpdated = false; var packagesUpdated = false;
var fileContent = File.ReadAllText(filePath); var fileContent = File.ReadAllText(filePath);
@ -201,7 +200,7 @@ namespace Volo.Abp.Cli.ProjectModification
bool includePreviews = false, bool includePreviews = false,
bool switchToStable = false) bool switchToStable = false)
{ {
var currentVersion = (string)package.Value; var currentVersion = (string) package.Value;
var version = await GetLatestVersion(package, currentVersion, includePreviews, switchToStable); var version = await GetLatestVersion(package, currentVersion, includePreviews, switchToStable);
@ -214,7 +213,8 @@ namespace Volo.Abp.Cli.ProjectModification
package.Value.Replace(versionWithPrefix); package.Value.Replace(versionWithPrefix);
Logger.LogInformation($"Updated {package.Name} to {version} in {filePath.Replace(Directory.GetCurrentDirectory(), "")}."); Logger.LogInformation(
$"Updated {package.Name} to {version} in {filePath.Replace(Directory.GetCurrentDirectory(), "")}.");
return true; return true;
} }
@ -256,12 +256,12 @@ namespace Volo.Abp.Cli.ProjectModification
protected virtual List<JProperty> GetAbpPackagesFromPackageJson(JObject fileObject) protected virtual List<JProperty> GetAbpPackagesFromPackageJson(JObject fileObject)
{ {
var dependencyList = new[] { "dependencies", "devDependencies", "peerDependencies" }; var dependencyList = new[] {"dependencies", "devDependencies", "peerDependencies"};
var abpPackages = new List<JProperty>(); var abpPackages = new List<JProperty>();
foreach (var dependencyListName in dependencyList) foreach (var dependencyListName in dependencyList)
{ {
var dependencies = (JObject)fileObject[dependencyListName]; var dependencies = (JObject) fileObject[dependencyListName];
if (dependencies == null) if (dependencies == null)
{ {
@ -269,7 +269,8 @@ namespace Volo.Abp.Cli.ProjectModification
} }
var properties = dependencies.Properties().ToList(); var properties = dependencies.Properties().ToList();
abpPackages.AddRange(properties.Where(p => p.Name.StartsWith("@abp/") || p.Name.StartsWith("@volo/")).ToList()); abpPackages.AddRange(properties.Where(p => p.Name.StartsWith("@abp/") || p.Name.StartsWith("@volo/"))
.ToList());
} }
return abpPackages; return abpPackages;
@ -286,5 +287,11 @@ namespace Volo.Abp.Cli.ProjectModification
Logger.LogInformation($"Running Yarn on {fileDirectory}"); Logger.LogInformation($"Running Yarn on {fileDirectory}");
CmdHelper.RunCmd($"cd {fileDirectory} && yarn"); CmdHelper.RunCmd($"cd {fileDirectory} && yarn");
} }
protected virtual void RunNpmInstall(string fileDirectory)
{
Logger.LogInformation($"Running npm install on {fileDirectory}");
CmdHelper.RunCmd($"cd {fileDirectory} && npm install");
}
} }
} }

Loading…
Cancel
Save