From 3ed0f343c779b99900eb1bee2fc1f3fa10b54e3c Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 6 Jan 2022 11:30:06 +0300 Subject: [PATCH] Cli: Stop running gulp task and run install-libs resolves https://github.com/volosoft/volo/issues/8835 --- .../NpmGlobalPackagesChecker.cs | 10 ---- .../ProjectModification/NpmPackagesUpdater.cs | 50 +++++++++++-------- .../ProjectNpmPackageAdder.cs | 22 ++++---- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs index 7df511592b..1459f5fc94 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs @@ -24,10 +24,6 @@ namespace Volo.Abp.Cli.ProjectModification { InstallYarn(); } - if (!installedNpmPackages.Contains(" gulp@")) - { - InstallGulp(); - } } protected virtual string GetInstalledNpmPackages() @@ -41,11 +37,5 @@ namespace Volo.Abp.Cli.ProjectModification Logger.LogInformation("Installing yarn..."); CmdHelper.RunCmd("npm install yarn -g"); } - - protected virtual void InstallGulp() - { - Logger.LogInformation("Installing gulp..."); - CmdHelper.RunCmd("npm install gulp -g"); - } } } 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 e1a048b9e1..094fe6dc96 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 @@ -23,6 +23,7 @@ namespace Volo.Abp.Cli.ProjectModification { public ILogger Logger { get; set; } protected ICancellationTokenProvider CancellationTokenProvider { get; } + public InstallLibsCommand InstallLibsCommand { get; } public ICmdHelper CmdHelper { get; } private readonly PackageJsonFileFinder _packageJsonFileFinder; @@ -35,17 +36,21 @@ namespace Volo.Abp.Cli.ProjectModification NpmGlobalPackagesChecker npmGlobalPackagesChecker, ICancellationTokenProvider cancellationTokenProvider, CliHttpClientFactory cliHttpClientFactory, + InstallLibsCommand ınstallLibsCommand, ICmdHelper cmdHelper) { _packageJsonFileFinder = packageJsonFileFinder; _npmGlobalPackagesChecker = npmGlobalPackagesChecker; CancellationTokenProvider = cancellationTokenProvider; + InstallLibsCommand = ınstallLibsCommand; CmdHelper = cmdHelper; _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } - public async Task Update(string rootDirectory, bool includePreviews = false, bool includeReleaseCandidates = false, bool switchToStable = false, string version = null) + public async Task Update(string rootDirectory, bool includePreviews = false, + bool includeReleaseCandidates = false, + bool switchToStable = false, string version = null) { var fileList = _packageJsonFileFinder.Find(rootDirectory); @@ -60,7 +65,9 @@ namespace Volo.Abp.Cli.ProjectModification async Task UpdateAsync(string file) { - var updated = await UpdatePackagesInFile(file, includePreviews, includeReleaseCandidates, switchToStable, version); + var updated = await UpdatePackagesInFile(file, includePreviews, includeReleaseCandidates, + switchToStable, + version); packagesUpdated.TryAdd(file, updated); } @@ -88,10 +95,10 @@ namespace Volo.Abp.Cli.ProjectModification RunYarn(fileDirectory); } - if (!IsAngularProject(fileDirectory) && GulpFileExistAsync(fileDirectory)) + if (!IsAngularProject(fileDirectory)) { Thread.Sleep(1000); - RunGulp(fileDirectory); + RunInstallLibsAsync(fileDirectory); } } } @@ -108,11 +115,6 @@ namespace Volo.Abp.Cli.ProjectModification return await Task.FromResult(File.Exists(Path.Combine(directoryName, ".npmrc"))); } - private static bool GulpFileExistAsync(string directoryName) - { - return File.Exists(Path.Combine(directoryName, "gulpfile.js")); - } - private async Task CreateNpmrcFileAsync(string directoryName) { var fileName = Path.Combine(directoryName, ".npmrc"); @@ -121,7 +123,6 @@ namespace Volo.Abp.Cli.ProjectModification if (await NpmrcFileExistAsync(directoryName)) { - var fileContent = File.ReadAllText(fileName); if (!fileContent.Contains(abpRegistry)) @@ -164,10 +165,10 @@ namespace Volo.Abp.Cli.ProjectModification { var client = _cliHttpClientFactory.CreateClient(); using (var response = await client.GetHttpResponseMessageWithRetryAsync( - url: $"{CliUrls.WwwAbpIo}api/myget/apikey/", - cancellationToken: CancellationTokenProvider.Token, - logger: Logger - )) + url: $"{CliUrls.WwwAbpIo}api/myget/apikey/", + cancellationToken: CancellationTokenProvider.Token, + logger: Logger + )) { return Encoding.Default.GetString(await response.Content.ReadAsByteArrayAsync()); } @@ -202,7 +203,8 @@ namespace Volo.Abp.Cli.ProjectModification foreach (var abpPackage in abpPackages) { - var updated = await TryUpdatingPackage(filePath, abpPackage, includePreviews, includeReleaseCandidates, switchToStable, specifiedVersion); + var updated = await TryUpdatingPackage(filePath, abpPackage, includePreviews, includeReleaseCandidates, + switchToStable, specifiedVersion); if (updated) { @@ -236,15 +238,19 @@ namespace Volo.Abp.Cli.ProjectModification return false; } - if (SemanticVersion.Parse(specifiedVersion) <= SemanticVersion.Parse(currentVersion.RemovePreFix("~", "^"))) + if (SemanticVersion.Parse(specifiedVersion) <= + SemanticVersion.Parse(currentVersion.RemovePreFix("~", "^"))) { return false; } + version = specifiedVersion.EnsureStartsWith('^'); } else { - if ((includePreviews || (!switchToStable && (currentVersion != null && currentVersion.Contains("-preview")))) && !includeReleaseCandidates) + if ((includePreviews || + (!switchToStable && (currentVersion != null && currentVersion.Contains("-preview")))) && + !includeReleaseCandidates) { version = "preview"; } @@ -328,16 +334,18 @@ namespace Volo.Abp.Cli.ProjectModification abpPackages .AddRange(properties.Where(p => p.Name.StartsWith("@abp/") || p.Name.StartsWith("@volo/")) - .ToList()); + .ToList()); } return abpPackages; } - protected virtual void RunGulp(string fileDirectory) + protected virtual async Task RunInstallLibsAsync(string fileDirectory) { - Logger.LogInformation($"Running Gulp on {fileDirectory}"); - CmdHelper.RunCmd($"cd {fileDirectory} && gulp"); + var args = new CommandLineArgs("install-libs"); + args.Options.Add(BundleCommand.Options.WorkingDirectory.Short, fileDirectory); + + await InstallLibsCommand.ExecuteAsync(args); } protected virtual void RunYarn(string fileDirectory) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs index 3baab9ed98..a65f86faf6 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs @@ -26,6 +26,7 @@ namespace Volo.Abp.Cli.ProjectModification public SourceCodeDownloadService SourceCodeDownloadService { get; } public AngularSourceCodeAdder AngularSourceCodeAdder { get; } public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } + public InstallLibsCommand InstallLibsCommand { get; } public ICmdHelper CmdHelper { get; } private readonly CliHttpClientFactory _cliHttpClientFactory; public ILogger Logger { get; set; } @@ -35,12 +36,14 @@ namespace Volo.Abp.Cli.ProjectModification SourceCodeDownloadService sourceCodeDownloadService, AngularSourceCodeAdder angularSourceCodeAdder, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, + InstallLibsCommand ınstallLibsCommand, ICmdHelper cmdHelper) { JsonSerializer = jsonSerializer; SourceCodeDownloadService = sourceCodeDownloadService; AngularSourceCodeAdder = angularSourceCodeAdder; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; + InstallLibsCommand = ınstallLibsCommand; CmdHelper = cmdHelper; _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; @@ -109,14 +112,14 @@ namespace Volo.Abp.Cli.ProjectModification ); } - public Task AddMvcPackageAsync(string directory, NpmPackageInfo npmPackage, string version = null, - bool skipGulpCommand = false) + public async Task AddMvcPackageAsync(string directory, NpmPackageInfo npmPackage, string version = null, + bool skipInstallingLibs = false) { var packageJsonFilePath = Path.Combine(directory, "package.json"); if (!File.Exists(packageJsonFilePath) || File.ReadAllText(packageJsonFilePath).Contains($"\"{npmPackage.Name}\"")) { - return Task.CompletedTask; + return; } Logger.LogInformation($"Installing '{npmPackage.Name}' package to the project '{packageJsonFilePath}'..."); @@ -134,16 +137,15 @@ namespace Volo.Abp.Cli.ProjectModification Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix); CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix); - if (skipGulpCommand) + if (skipInstallingLibs) { - return Task.CompletedTask; + return; } - Logger.LogInformation("gulp"); - CmdHelper.RunCmd("gulp"); + await InstallLibsCommand.ExecuteAsync( + new CommandLineArgs("install-libs") + ); } - - return Task.CompletedTask; } private string DetectAbpVersionOrNull(string packageJsonFile) @@ -158,7 +160,7 @@ namespace Volo.Abp.Cli.ProjectModification { var packageJsonFileContent = File.ReadAllText(packageJsonFile); var packageJsonObject = JObject.Parse(packageJsonFileContent); - var dependenciesObject = (JObject) packageJsonObject["dependencies"]; + var dependenciesObject = (JObject)packageJsonObject["dependencies"]; if (dependenciesObject == null) {