Browse Source

Merge pull request #21800 from abpframework/EngincanV/npx

CLI: Use 'npx' for yarn commands
pull/21808/head
Masum ULU 2 years ago
committed by GitHub
parent
commit
0fedc51e74
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 20
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
  2. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  3. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs
  4. 11
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ThemePackageAdder.cs
  5. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/NpmHelper.cs

20
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs

@ -50,7 +50,7 @@ public class InstallLibsService : IInstallLibsService, ITransientDependency
if (!NpmHelper.IsYarnAvailable()) if (!NpmHelper.IsYarnAvailable())
{ {
Logger.LogWarning("YARN is not installed, which may cause package inconsistency, please use YARN instead of NPM. visit https://classic.yarnpkg.com/lang/en/docs/install/ and install YARN"); Logger.LogWarning("YARN is not installed, which may cause package inconsistency. ABP uses 'npx yarn <command>' behind the scenes to prevent possible inconsistencies.");
} }
Logger.LogInformation($"Found {projectPaths.Count} projects."); Logger.LogInformation($"Found {projectPaths.Count} projects.");
@ -66,14 +66,7 @@ public class InstallLibsService : IInstallLibsService, ITransientDependency
// angular // angular
if (projectPath.EndsWith("angular.json")) if (projectPath.EndsWith("angular.json"))
{ {
if (NpmHelper.IsYarnAvailable()) NpmHelper.RunYarn(projectDirectory);
{
NpmHelper.RunYarn(projectDirectory);
}
else
{
NpmHelper.RunNpmInstall(projectDirectory, "--legacy-peer-deps");
}
} }
// MVC or BLAZOR SERVER // MVC or BLAZOR SERVER
@ -86,14 +79,7 @@ public class InstallLibsService : IInstallLibsService, ITransientDependency
continue; continue;
} }
if (NpmHelper.IsYarnAvailable()) NpmHelper.RunYarn(projectDirectory);
{
NpmHelper.RunYarn(projectDirectory);
}
else
{
NpmHelper.RunNpmInstall(projectDirectory, "--no-audit");
}
await CleanAndCopyResources(projectDirectory); await CleanAndCopyResources(projectDirectory);
} }

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

@ -358,7 +358,7 @@ public class NpmPackagesUpdater : ITransientDependency
protected virtual void RunYarn(string fileDirectory) protected virtual void RunYarn(string fileDirectory)
{ {
Logger.LogInformation($"Running Yarn on {fileDirectory}"); Logger.LogInformation($"Running Yarn on {fileDirectory}");
CmdHelper.RunCmd($"yarn", fileDirectory); CmdHelper.RunCmd($"npx yarn", fileDirectory);
} }
protected virtual void RunNpmInstall(string fileDirectory) protected virtual void RunNpmInstall(string fileDirectory)

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs

@ -75,7 +75,7 @@ public class ProjectNpmPackageAdder : ITransientDependency
using (DirectoryHelper.ChangeCurrentDirectory(directory)) using (DirectoryHelper.ChangeCurrentDirectory(directory))
{ {
Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix); Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix);
CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix); CmdHelper.RunCmd("npx yarn add " + npmPackage.Name + versionPostfix);
} }
} }
else else
@ -130,7 +130,7 @@ public class ProjectNpmPackageAdder : ITransientDependency
using (DirectoryHelper.ChangeCurrentDirectory(directory)) using (DirectoryHelper.ChangeCurrentDirectory(directory))
{ {
Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix); Logger.LogInformation("yarn add " + npmPackage.Name + versionPostfix);
CmdHelper.RunCmd("yarn add " + npmPackage.Name + versionPostfix); CmdHelper.RunCmd("npx yarn add " + npmPackage.Name + versionPostfix);
if (skipInstallingLibs) if (skipInstallingLibs)
{ {
@ -158,7 +158,7 @@ public class ProjectNpmPackageAdder : ITransientDependency
using (DirectoryHelper.ChangeCurrentDirectory(directory)) using (DirectoryHelper.ChangeCurrentDirectory(directory))
{ {
Logger.LogInformation("yarn remove " + npmPackage.Name); Logger.LogInformation("yarn remove " + npmPackage.Name);
CmdHelper.RunCmd("yarn remove " + npmPackage.Name); CmdHelper.RunCmd("npx yarn remove " + npmPackage.Name);
if (skipInstallingLibs) if (skipInstallingLibs)
{ {

11
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ThemePackageAdder.cs

@ -43,18 +43,11 @@ public class ThemePackageAdder : ITransientDependency
return; return;
} }
var yarnAvailable = NpmHelper.IsYarnAvailable();
foreach (var packageJsonFilePath in packageJsonFilePaths) foreach (var packageJsonFilePath in packageJsonFilePaths)
{ {
var directory = Path.GetDirectoryName(packageJsonFilePath).EnsureEndsWith(Path.DirectorySeparatorChar); var directory = Path.GetDirectoryName(packageJsonFilePath).EnsureEndsWith(Path.DirectorySeparatorChar);
if (yarnAvailable)
{ NpmHelper.YarnAddPackage(package, version, directory);
NpmHelper.YarnAddPackage(package, version, directory);
}
else
{
NpmHelper.NpmInstallPackage(package, version, directory);
}
} }
} }
} }

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/NpmHelper.cs

@ -49,6 +49,7 @@ public class NpmHelper : ITransientDependency
return version > SemanticVersion.Parse("1.20.0"); return version > SemanticVersion.Parse("1.20.0");
} }
[Obsolete("This method is deprecated. Use 'RunYarn' instead (it uses 'npx', so there is no need for 'yarn' to be globally installed.")]
public void RunNpmInstall(string directory, params string[] args) public void RunNpmInstall(string directory, params string[] args)
{ {
Logger.LogInformation($"Running npm install on {directory}"); Logger.LogInformation($"Running npm install on {directory}");
@ -58,9 +59,10 @@ public class NpmHelper : ITransientDependency
public void RunYarn(string directory) public void RunYarn(string directory)
{ {
Logger.LogInformation($"Running Yarn on {directory}"); Logger.LogInformation($"Running Yarn on {directory}");
CmdHelper.RunCmd($"yarn", directory); CmdHelper.RunCmd($"npx yarn", directory);
} }
[Obsolete("This method is deprecated. Use 'YarnAddPackage' instead (it uses 'npx', so there is no need for 'yarn' to be globally installed.")]
public void NpmInstallPackage(string package, string version, string directory) public void NpmInstallPackage(string package, string version, string directory)
{ {
var packageVersion = !string.IsNullOrWhiteSpace(version) ? $"@{version}" : string.Empty; var packageVersion = !string.IsNullOrWhiteSpace(version) ? $"@{version}" : string.Empty;
@ -70,7 +72,7 @@ public class NpmHelper : ITransientDependency
public void YarnAddPackage(string package, string version, string directory) public void YarnAddPackage(string package, string version, string directory)
{ {
var packageVersion = !string.IsNullOrWhiteSpace(version) ? $"@{version}" : string.Empty; var packageVersion = !string.IsNullOrWhiteSpace(version) ? $"@{version}" : string.Empty;
CmdHelper.RunCmd("yarn add " + package + packageVersion, workingDirectory: directory); CmdHelper.RunCmd("npx yarn add " + package + packageVersion, workingDirectory: directory);
} }
public string GetInstalledNpmPackages() public string GetInstalledNpmPackages()

Loading…
Cancel
Save