Browse Source

Cli: Stop running gulp task and run install-libs

resolves https://github.com/volosoft/volo/issues/8835
pull/11206/head
Yunus Emre Kalkan 5 years ago
parent
commit
3ed0f343c7
  1. 10
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs
  2. 50
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  3. 22
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs

10
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs

@ -24,10 +24,6 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
InstallYarn(); InstallYarn();
} }
if (!installedNpmPackages.Contains(" gulp@"))
{
InstallGulp();
}
} }
protected virtual string GetInstalledNpmPackages() protected virtual string GetInstalledNpmPackages()
@ -41,11 +37,5 @@ namespace Volo.Abp.Cli.ProjectModification
Logger.LogInformation("Installing yarn..."); Logger.LogInformation("Installing yarn...");
CmdHelper.RunCmd("npm install yarn -g"); CmdHelper.RunCmd("npm install yarn -g");
} }
protected virtual void InstallGulp()
{
Logger.LogInformation("Installing gulp...");
CmdHelper.RunCmd("npm install gulp -g");
}
} }
} }

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

@ -23,6 +23,7 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
public ILogger<NpmPackagesUpdater> Logger { get; set; } public ILogger<NpmPackagesUpdater> Logger { get; set; }
protected ICancellationTokenProvider CancellationTokenProvider { get; } protected ICancellationTokenProvider CancellationTokenProvider { get; }
public InstallLibsCommand InstallLibsCommand { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
private readonly PackageJsonFileFinder _packageJsonFileFinder; private readonly PackageJsonFileFinder _packageJsonFileFinder;
@ -35,17 +36,21 @@ namespace Volo.Abp.Cli.ProjectModification
NpmGlobalPackagesChecker npmGlobalPackagesChecker, NpmGlobalPackagesChecker npmGlobalPackagesChecker,
ICancellationTokenProvider cancellationTokenProvider, ICancellationTokenProvider cancellationTokenProvider,
CliHttpClientFactory cliHttpClientFactory, CliHttpClientFactory cliHttpClientFactory,
InstallLibsCommand ınstallLibsCommand,
ICmdHelper cmdHelper) ICmdHelper cmdHelper)
{ {
_packageJsonFileFinder = packageJsonFileFinder; _packageJsonFileFinder = packageJsonFileFinder;
_npmGlobalPackagesChecker = npmGlobalPackagesChecker; _npmGlobalPackagesChecker = npmGlobalPackagesChecker;
CancellationTokenProvider = cancellationTokenProvider; CancellationTokenProvider = cancellationTokenProvider;
InstallLibsCommand = ınstallLibsCommand;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
_cliHttpClientFactory = cliHttpClientFactory; _cliHttpClientFactory = cliHttpClientFactory;
Logger = NullLogger<NpmPackagesUpdater>.Instance; Logger = NullLogger<NpmPackagesUpdater>.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); var fileList = _packageJsonFileFinder.Find(rootDirectory);
@ -60,7 +65,9 @@ namespace Volo.Abp.Cli.ProjectModification
async Task UpdateAsync(string file) 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); packagesUpdated.TryAdd(file, updated);
} }
@ -88,10 +95,10 @@ namespace Volo.Abp.Cli.ProjectModification
RunYarn(fileDirectory); RunYarn(fileDirectory);
} }
if (!IsAngularProject(fileDirectory) && GulpFileExistAsync(fileDirectory)) if (!IsAngularProject(fileDirectory))
{ {
Thread.Sleep(1000); 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"))); 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) private async Task CreateNpmrcFileAsync(string directoryName)
{ {
var fileName = Path.Combine(directoryName, ".npmrc"); var fileName = Path.Combine(directoryName, ".npmrc");
@ -121,7 +123,6 @@ namespace Volo.Abp.Cli.ProjectModification
if (await NpmrcFileExistAsync(directoryName)) if (await NpmrcFileExistAsync(directoryName))
{ {
var fileContent = File.ReadAllText(fileName); var fileContent = File.ReadAllText(fileName);
if (!fileContent.Contains(abpRegistry)) if (!fileContent.Contains(abpRegistry))
@ -164,10 +165,10 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
var client = _cliHttpClientFactory.CreateClient(); var client = _cliHttpClientFactory.CreateClient();
using (var response = await client.GetHttpResponseMessageWithRetryAsync( using (var response = await client.GetHttpResponseMessageWithRetryAsync(
url: $"{CliUrls.WwwAbpIo}api/myget/apikey/", url: $"{CliUrls.WwwAbpIo}api/myget/apikey/",
cancellationToken: CancellationTokenProvider.Token, cancellationToken: CancellationTokenProvider.Token,
logger: Logger logger: Logger
)) ))
{ {
return Encoding.Default.GetString(await response.Content.ReadAsByteArrayAsync()); return Encoding.Default.GetString(await response.Content.ReadAsByteArrayAsync());
} }
@ -202,7 +203,8 @@ namespace Volo.Abp.Cli.ProjectModification
foreach (var abpPackage in abpPackages) 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) if (updated)
{ {
@ -236,15 +238,19 @@ namespace Volo.Abp.Cli.ProjectModification
return false; return false;
} }
if (SemanticVersion.Parse(specifiedVersion) <= SemanticVersion.Parse(currentVersion.RemovePreFix("~", "^"))) if (SemanticVersion.Parse(specifiedVersion) <=
SemanticVersion.Parse(currentVersion.RemovePreFix("~", "^")))
{ {
return false; return false;
} }
version = specifiedVersion.EnsureStartsWith('^'); version = specifiedVersion.EnsureStartsWith('^');
} }
else else
{ {
if ((includePreviews || (!switchToStable && (currentVersion != null && currentVersion.Contains("-preview")))) && !includeReleaseCandidates) if ((includePreviews ||
(!switchToStable && (currentVersion != null && currentVersion.Contains("-preview")))) &&
!includeReleaseCandidates)
{ {
version = "preview"; version = "preview";
} }
@ -328,16 +334,18 @@ namespace Volo.Abp.Cli.ProjectModification
abpPackages abpPackages
.AddRange(properties.Where(p => p.Name.StartsWith("@abp/") || p.Name.StartsWith("@volo/")) .AddRange(properties.Where(p => p.Name.StartsWith("@abp/") || p.Name.StartsWith("@volo/"))
.ToList()); .ToList());
} }
return abpPackages; return abpPackages;
} }
protected virtual void RunGulp(string fileDirectory) protected virtual async Task RunInstallLibsAsync(string fileDirectory)
{ {
Logger.LogInformation($"Running Gulp on {fileDirectory}"); var args = new CommandLineArgs("install-libs");
CmdHelper.RunCmd($"cd {fileDirectory} && gulp"); args.Options.Add(BundleCommand.Options.WorkingDirectory.Short, fileDirectory);
await InstallLibsCommand.ExecuteAsync(args);
} }
protected virtual void RunYarn(string fileDirectory) protected virtual void RunYarn(string fileDirectory)

22
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 SourceCodeDownloadService SourceCodeDownloadService { get; }
public AngularSourceCodeAdder AngularSourceCodeAdder { get; } public AngularSourceCodeAdder AngularSourceCodeAdder { get; }
public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; }
public InstallLibsCommand InstallLibsCommand { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
private readonly CliHttpClientFactory _cliHttpClientFactory; private readonly CliHttpClientFactory _cliHttpClientFactory;
public ILogger<ProjectNpmPackageAdder> Logger { get; set; } public ILogger<ProjectNpmPackageAdder> Logger { get; set; }
@ -35,12 +36,14 @@ namespace Volo.Abp.Cli.ProjectModification
SourceCodeDownloadService sourceCodeDownloadService, SourceCodeDownloadService sourceCodeDownloadService,
AngularSourceCodeAdder angularSourceCodeAdder, AngularSourceCodeAdder angularSourceCodeAdder,
IRemoteServiceExceptionHandler remoteServiceExceptionHandler, IRemoteServiceExceptionHandler remoteServiceExceptionHandler,
InstallLibsCommand ınstallLibsCommand,
ICmdHelper cmdHelper) ICmdHelper cmdHelper)
{ {
JsonSerializer = jsonSerializer; JsonSerializer = jsonSerializer;
SourceCodeDownloadService = sourceCodeDownloadService; SourceCodeDownloadService = sourceCodeDownloadService;
AngularSourceCodeAdder = angularSourceCodeAdder; AngularSourceCodeAdder = angularSourceCodeAdder;
RemoteServiceExceptionHandler = remoteServiceExceptionHandler; RemoteServiceExceptionHandler = remoteServiceExceptionHandler;
InstallLibsCommand = ınstallLibsCommand;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
_cliHttpClientFactory = cliHttpClientFactory; _cliHttpClientFactory = cliHttpClientFactory;
Logger = NullLogger<ProjectNpmPackageAdder>.Instance; Logger = NullLogger<ProjectNpmPackageAdder>.Instance;
@ -109,14 +112,14 @@ namespace Volo.Abp.Cli.ProjectModification
); );
} }
public Task AddMvcPackageAsync(string directory, NpmPackageInfo npmPackage, string version = null, public async Task AddMvcPackageAsync(string directory, NpmPackageInfo npmPackage, string version = null,
bool skipGulpCommand = false) bool skipInstallingLibs = false)
{ {
var packageJsonFilePath = Path.Combine(directory, "package.json"); var packageJsonFilePath = Path.Combine(directory, "package.json");
if (!File.Exists(packageJsonFilePath) || if (!File.Exists(packageJsonFilePath) ||
File.ReadAllText(packageJsonFilePath).Contains($"\"{npmPackage.Name}\"")) File.ReadAllText(packageJsonFilePath).Contains($"\"{npmPackage.Name}\""))
{ {
return Task.CompletedTask; return;
} }
Logger.LogInformation($"Installing '{npmPackage.Name}' package to the project '{packageJsonFilePath}'..."); 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); Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix);
CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix); CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix);
if (skipGulpCommand) if (skipInstallingLibs)
{ {
return Task.CompletedTask; return;
} }
Logger.LogInformation("gulp"); await InstallLibsCommand.ExecuteAsync(
CmdHelper.RunCmd("gulp"); new CommandLineArgs("install-libs")
);
} }
return Task.CompletedTask;
} }
private string DetectAbpVersionOrNull(string packageJsonFile) private string DetectAbpVersionOrNull(string packageJsonFile)
@ -158,7 +160,7 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
var packageJsonFileContent = File.ReadAllText(packageJsonFile); var packageJsonFileContent = File.ReadAllText(packageJsonFile);
var packageJsonObject = JObject.Parse(packageJsonFileContent); var packageJsonObject = JObject.Parse(packageJsonFileContent);
var dependenciesObject = (JObject) packageJsonObject["dependencies"]; var dependenciesObject = (JObject)packageJsonObject["dependencies"];
if (dependenciesObject == null) if (dependenciesObject == null)
{ {

Loading…
Cancel
Save