diff --git a/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliBuilder.cs b/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliBuilder.cs
index b6cc1f18c6..df19fa76d9 100644
--- a/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliBuilder.cs
+++ b/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliBuilder.cs
@@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
///
public async Task Build(ISpaBuilder spaBuilder)
{
- var pkgManagerName = spaBuilder.Options.PackageManagerName;
+ var pkgManagerCommand = spaBuilder.Options.PackageManagerCommand;
var sourcePath = spaBuilder.Options.SourcePath;
if (string.IsNullOrEmpty(sourcePath))
{
@@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
_scriptName,
"--watch",
null,
- pkgManagerName);
+ pkgManagerCommand);
scriptRunner.AttachToLogger(logger);
using (var stdOutReader = new EventedStreamStringReader(scriptRunner.StdOut))
@@ -69,14 +69,14 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
catch (EndOfStreamException ex)
{
throw new InvalidOperationException(
- $"The {pkgManagerName} script '{_scriptName}' exited without indicating success.\n" +
+ $"The {pkgManagerCommand} script '{_scriptName}' exited without indicating success.\n" +
$"Output was: {stdOutReader.ReadAsString()}\n" +
$"Error output was: {stdErrReader.ReadAsString()}", ex);
}
catch (OperationCanceledException ex)
{
throw new InvalidOperationException(
- $"The {pkgManagerName} script '{_scriptName}' timed out without indicating success. " +
+ $"The {pkgManagerCommand} script '{_scriptName}' timed out without indicating success. " +
$"Output was: {stdOutReader.ReadAsString()}\n" +
$"Error output was: {stdErrReader.ReadAsString()}", ex);
}
diff --git a/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliMiddleware.cs b/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliMiddleware.cs
index dfddd1800a..c4e109b8f7 100644
--- a/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliMiddleware.cs
+++ b/src/Middleware/SpaServices.Extensions/src/AngularCli/AngularCliMiddleware.cs
@@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
ISpaBuilder spaBuilder,
string scriptName)
{
- var pkgManagerName = spaBuilder.Options.PackageManagerName;
+ var pkgManagerCommand = spaBuilder.Options.PackageManagerCommand;
var sourcePath = spaBuilder.Options.SourcePath;
if (string.IsNullOrEmpty(sourcePath))
{
@@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
// Start Angular CLI and attach to middleware pipeline
var appBuilder = spaBuilder.ApplicationBuilder;
var logger = LoggerFinder.GetOrCreateLogger(appBuilder, LogCategoryName);
- var angularCliServerInfoTask = StartAngularCliServerAsync(sourcePath, scriptName, pkgManagerName, logger);
+ var angularCliServerInfoTask = StartAngularCliServerAsync(sourcePath, scriptName, pkgManagerCommand, logger);
// Everything we proxy is hardcoded to target http://localhost because:
// - the requests are always from the local machine (we're not accepting remote
@@ -63,13 +63,13 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
}
private static async Task StartAngularCliServerAsync(
- string sourcePath, string scriptName, string pkgManagerName, ILogger logger)
+ string sourcePath, string scriptName, string pkgManagerCommand, ILogger logger)
{
var portNumber = TcpPortFinder.FindAvailablePort();
logger.LogInformation($"Starting @angular/cli on port {portNumber}...");
var scriptRunner = new NodeScriptRunner(
- sourcePath, scriptName, $"--port {portNumber}", null, pkgManagerName);
+ sourcePath, scriptName, $"--port {portNumber}", null, pkgManagerCommand);
scriptRunner.AttachToLogger(logger);
Match openBrowserLine;
@@ -83,7 +83,7 @@ namespace Microsoft.AspNetCore.SpaServices.AngularCli
catch (EndOfStreamException ex)
{
throw new InvalidOperationException(
- $"The {pkgManagerName} script '{scriptName}' exited without indicating that the " +
+ $"The {pkgManagerCommand} script '{scriptName}' exited without indicating that the " +
$"Angular CLI was listening for requests. The error output was: " +
$"{stdErrReader.ReadAsString()}", ex);
}
diff --git a/src/Middleware/SpaServices.Extensions/src/Npm/NodeScriptRunner.cs b/src/Middleware/SpaServices.Extensions/src/Npm/NodeScriptRunner.cs
index 86e6497f19..f08abeb19c 100644
--- a/src/Middleware/SpaServices.Extensions/src/Npm/NodeScriptRunner.cs
+++ b/src/Middleware/SpaServices.Extensions/src/Npm/NodeScriptRunner.cs
@@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.NodeServices.Npm
private static Regex AnsiColorRegex = new Regex("\x001b\\[[0-9;]*m", RegexOptions.None, TimeSpan.FromSeconds(1));
- public NodeScriptRunner(string workingDirectory, string scriptName, string arguments, IDictionary envVars, string pkgManagerName)
+ public NodeScriptRunner(string workingDirectory, string scriptName, string arguments, IDictionary envVars, string pkgManagerCommand)
{
if (string.IsNullOrEmpty(workingDirectory))
{
@@ -35,12 +35,12 @@ namespace Microsoft.AspNetCore.NodeServices.Npm
throw new ArgumentException("Cannot be null or empty.", nameof(scriptName));
}
- if (string.IsNullOrEmpty(pkgManagerName))
+ if (string.IsNullOrEmpty(pkgManagerCommand))
{
- throw new ArgumentException("Cannot be null or empty.", nameof(pkgManagerName));
+ throw new ArgumentException("Cannot be null or empty.", nameof(pkgManagerCommand));
}
- var exeToRun = pkgManagerName;
+ var exeToRun = pkgManagerCommand;
var completeArguments = $"run {scriptName} -- {arguments ?? string.Empty}";
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
@@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.NodeServices.Npm
// directly (except with UseShellExecute=true, but that's no good, because
// it prevents capturing stdio). So we need to invoke it via "cmd /c".
exeToRun = "cmd";
- completeArguments = $"/c {pkgManagerName} {completeArguments}";
+ completeArguments = $"/c {pkgManagerCommand} {completeArguments}";
}
var processStartInfo = new ProcessStartInfo(exeToRun)
@@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.NodeServices.Npm
}
}
- var process = LaunchNodeProcess(processStartInfo, pkgManagerName);
+ var process = LaunchNodeProcess(processStartInfo, pkgManagerCommand);
StdOut = new EventedStreamReader(process.StandardOutput);
StdErr = new EventedStreamReader(process.StandardError);
}
diff --git a/src/Middleware/SpaServices.Extensions/src/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs b/src/Middleware/SpaServices.Extensions/src/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs
index e7ab1b3dea..6566fef706 100644
--- a/src/Middleware/SpaServices.Extensions/src/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs
+++ b/src/Middleware/SpaServices.Extensions/src/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs
@@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
ISpaBuilder spaBuilder,
string scriptName)
{
- var pkgManagerName = spaBuilder.Options.PackageManagerName;
+ var pkgManagerCommand = spaBuilder.Options.PackageManagerCommand;
var sourcePath = spaBuilder.Options.SourcePath;
if (string.IsNullOrEmpty(sourcePath))
{
@@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
// Start create-react-app and attach to middleware pipeline
var appBuilder = spaBuilder.ApplicationBuilder;
var logger = LoggerFinder.GetOrCreateLogger(appBuilder, LogCategoryName);
- var portTask = StartCreateReactAppServerAsync(sourcePath, scriptName, pkgManagerName, logger);
+ var portTask = StartCreateReactAppServerAsync(sourcePath, scriptName, pkgManagerCommand, logger);
// Everything we proxy is hardcoded to target http://localhost because:
// - the requests are always from the local machine (we're not accepting remote
@@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
}
private static async Task StartCreateReactAppServerAsync(
- string sourcePath, string scriptName, string pkgManagerName, ILogger logger)
+ string sourcePath, string scriptName, string pkgManagerCommand, ILogger logger)
{
var portNumber = TcpPortFinder.FindAvailablePort();
logger.LogInformation($"Starting create-react-app server on port {portNumber}...");
@@ -73,7 +73,7 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
{ "BROWSER", "none" }, // We don't want create-react-app to open its own extra browser window pointing to the internal dev server port
};
var scriptRunner = new NodeScriptRunner(
- sourcePath, scriptName, null, envVars, pkgManagerName);
+ sourcePath, scriptName, null, envVars, pkgManagerCommand);
scriptRunner.AttachToLogger(logger);
using (var stdErrReader = new EventedStreamStringReader(scriptRunner.StdErr))
@@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
catch (EndOfStreamException ex)
{
throw new InvalidOperationException(
- $"The {pkgManagerName} script '{scriptName}' exited without indicating that the " +
+ $"The {pkgManagerCommand} script '{scriptName}' exited without indicating that the " +
$"create-react-app server was listening for requests. The error output was: " +
$"{stdErrReader.ReadAsString()}", ex);
}
diff --git a/src/Middleware/SpaServices.Extensions/src/SpaOptions.cs b/src/Middleware/SpaServices.Extensions/src/SpaOptions.cs
index 5b3d06a94d..59ccc1eda4 100644
--- a/src/Middleware/SpaServices.Extensions/src/SpaOptions.cs
+++ b/src/Middleware/SpaServices.Extensions/src/SpaOptions.cs
@@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.SpaServices
public class SpaOptions
{
private PathString _defaultPage = "/index.html";
- private string _defaultPackageManagerName = "npm";
+ private string _packageManagerCommand = "npm";
///
/// Constructs a new instance of .
@@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.SpaServices
internal SpaOptions(SpaOptions copyFromOptions)
{
_defaultPage = copyFromOptions.DefaultPage;
- _defaultPackageManagerName = copyFromOptions.PackageManagerName;
+ _packageManagerCommand = copyFromOptions.PackageManagerCommand;
DefaultPageStaticFileOptions = copyFromOptions.DefaultPageStaticFileOptions;
SourcePath = copyFromOptions.SourcePath;
}
@@ -74,20 +74,19 @@ namespace Microsoft.AspNetCore.SpaServices
/// Gets or sets the name of the package manager executible, (e.g npm,
/// yarn) to run the SPA.
///
- /// If not set, npm will be assumed as the default package manager
- /// executable
+ /// The default value is 'npm'.
///
- public string PackageManagerName
+ public string PackageManagerCommand
{
- get => _defaultPackageManagerName;
+ get => _packageManagerCommand;
set
{
if (string.IsNullOrEmpty(value))
{
- throw new ArgumentException($"The value for {nameof(PackageManagerName)} cannot be null or empty.");
+ throw new ArgumentException($"The value for {nameof(PackageManagerCommand)} cannot be null or empty.");
}
- _defaultPackageManagerName = value;
+ _packageManagerCommand = value;
}
}