Browse Source

Cli: add-module command should add angular npm packages

resolves https://github.com/abpframework/abp/issues/5581
pull/5599/head
Yunus Emre Kalkan 6 years ago
parent
commit
52c8e1852a
  1. 12
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs
  2. 29
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

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

@ -17,21 +17,29 @@ namespace Volo.Abp.Cli.ProjectModification
Logger = NullLogger<ProjectNpmPackageAdder>.Instance;
}
public Task AddAsync(string directory, NpmPackageInfo npmPackage)
public Task AddAsync(string directory, NpmPackageInfo npmPackage, bool skipGulpCommand = false)
{
var packageJsonFilePath = Path.Combine(directory, "package.json");
if (!File.Exists(packageJsonFilePath) || File.ReadAllText(packageJsonFilePath).Contains($"\"{npmPackage.Name}\""))
if (!File.Exists(packageJsonFilePath) ||
File.ReadAllText(packageJsonFilePath).Contains($"\"{npmPackage.Name}\""))
{
return Task.CompletedTask;
}
Logger.LogInformation($"Installing '{npmPackage.Name}' package to the project '{packageJsonFilePath}'...");
using (DirectoryHelper.ChangeCurrentDirectory(directory))
{
Logger.LogInformation("yarn add " + npmPackage.Name);
CmdHelper.RunCmd("yarn add " + npmPackage.Name);
if (skipGulpCommand)
{
return Task.CompletedTask;
}
Logger.LogInformation("gulp");
CmdHelper.RunCmd("gulp");
}

29
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

@ -87,14 +87,37 @@ namespace Volo.Abp.Cli.ProjectModification
await DownloadSourceCodesToSolutionFolder(module, modulesFolderInSolution, version);
await SolutionFileModifier.AddModuleToSolutionFileAsync(module, solutionFile);
await NugetPackageToLocalReferenceConverter.Convert(module, solutionFile);
await HandleAngularProject(modulesFolderInSolution, solutionFile);
await AddAngularSourceCode(modulesFolderInSolution, solutionFile);
}
else
{
await AddAngularPackages(solutionFile, module);
}
ModifyDbContext(projectFiles, module, startupProject, skipDbMigrations);
}
private async Task HandleAngularProject(string modulesFolderInSolution, string solutionFilePath)
private async Task AddAngularPackages(string solutionFilePath, ModuleWithMastersInfo module)
{
var angularPath = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(solutionFilePath)), "angular");
if (!Directory.Exists(angularPath))
{
return;
}
var angularPackages = module.NpmPackages?.Where(p => p.ApplicationType.HasFlag(NpmApplicationType.Angular)).ToList();
if (!angularPackages.IsNullOrEmpty())
{
foreach (var npmPackage in angularPackages)
{
await ProjectNpmPackageAdder.AddAsync(angularPath, npmPackage, true);
}
}
}
private async Task AddAngularSourceCode(string modulesFolderInSolution, string solutionFilePath)
{
var angularPath = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(solutionFilePath)), "angular");

Loading…
Cancel
Save