mirror of https://github.com/abpframework/abp.git
4 changed files with 101 additions and 73 deletions
@ -0,0 +1,69 @@ |
|||||
|
using Microsoft.Extensions.Logging; |
||||
|
using Microsoft.Extensions.Logging.Abstractions; |
||||
|
using NuGet.Versioning; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
|
||||
|
namespace Volo.Abp.Cli.Utils; |
||||
|
|
||||
|
public class NpmHelper : ITransientDependency |
||||
|
{ |
||||
|
protected ICmdHelper CmdHelper { get; } |
||||
|
public ILogger<NpmHelper> Logger { get; set; } |
||||
|
|
||||
|
public NpmHelper(ICmdHelper cmdHelper) |
||||
|
{ |
||||
|
CmdHelper = cmdHelper; |
||||
|
Logger = NullLogger<NpmHelper>.Instance; |
||||
|
} |
||||
|
|
||||
|
public bool IsNpmInstalled() |
||||
|
{ |
||||
|
var output = CmdHelper.RunCmdAndGetOutput("npm -v").Trim(); |
||||
|
return SemanticVersion.TryParse(output, out _); |
||||
|
} |
||||
|
|
||||
|
public bool IsYarnAvailable() |
||||
|
{ |
||||
|
var output = CmdHelper.RunCmdAndGetOutput("yarn -v").Trim(); |
||||
|
if (!SemanticVersion.TryParse(output, out var version)){ |
||||
|
return false; |
||||
|
} |
||||
|
return version > SemanticVersion.Parse("1.20.0"); |
||||
|
} |
||||
|
|
||||
|
public void RunNpmInstall(string directory) |
||||
|
{ |
||||
|
Logger.LogInformation($"Running npm install on {directory}"); |
||||
|
CmdHelper.RunCmd($"npm install", directory); |
||||
|
} |
||||
|
|
||||
|
public void RunYarn(string directory) |
||||
|
{ |
||||
|
Logger.LogInformation($"Running Yarn on {directory}"); |
||||
|
CmdHelper.RunCmd($"yarn", directory); |
||||
|
} |
||||
|
|
||||
|
public void NpmInstallPackage(string package, string version, string directory) |
||||
|
{ |
||||
|
var packageVersion = !string.IsNullOrWhiteSpace(version) ? $"@{version}" : string.Empty; |
||||
|
CmdHelper.RunCmd("npm install " + package + packageVersion, workingDirectory: directory); |
||||
|
} |
||||
|
|
||||
|
public void YarnAddPackage(string package, string version, string directory) |
||||
|
{ |
||||
|
var packageVersion = !string.IsNullOrWhiteSpace(version) ? $"@{version}" : string.Empty; |
||||
|
CmdHelper.RunCmd("yarn add " + package + packageVersion, workingDirectory: directory); |
||||
|
} |
||||
|
|
||||
|
public string GetInstalledNpmPackages() |
||||
|
{ |
||||
|
Logger.LogInformation("Checking installed npm global packages..."); |
||||
|
return CmdHelper.RunCmdAndGetOutput("npm list -g --depth 0 --silent", out int exitCode); |
||||
|
} |
||||
|
|
||||
|
public void InstallYarn() |
||||
|
{ |
||||
|
Logger.LogInformation("Installing yarn..."); |
||||
|
CmdHelper.RunCmd("npm install yarn -g"); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue