fix: Argument notation to allow parseArgs to parse leading dash-options
The server was invoked as: `server/build/index.js --command comm --args arg1 arg2 arg3` (`arg1 arg2 arg3` is a string in ARGV; the single value of `--args`.) `util:parseArgs()` cannot handle an argument value with a leading dash with this usage. e.g., `server/build/index.js --command npm --args --silent --prefix path/to/servers/src/everything run start` The above will throw, and indicate correct usage: ``` TypeError [ERR_PARSE_ARGS_INVALID_OPTION_VALUE]: Option '--args' argument is ambiguous. Did you forget to specify the option argument for '--args'? To specify an option argument starting with a dash use '--args=-XYZ'. ``` However, since users do not control the invocation of the server, they cannot adjust the notation for their use-case. `arguments`, and `command`, are unknown user input, so adjust the argument form to the more lenient and robust notation. Although a `command` beginning with `-` seems unlikely, consistent handling of both improves code clarity and simplicity. Running the server directly (e.g., on the command line in development) may continue to use: `--args arg1 arg2 arg3` if desired, so this is a non-breaking change.
This commit is contained in:
parent
aba186c955
commit
dc5fa6a0f5
1 changed files with 4 additions and 4 deletions
|
|
@ -91,10 +91,10 @@ async function startProdServer(serverOptions) {
|
||||||
"node",
|
"node",
|
||||||
[
|
[
|
||||||
inspectorServerPath,
|
inspectorServerPath,
|
||||||
...(command ? [`--command`, command] : []),
|
command ? `--command=${command}` : "",
|
||||||
...(mcpServerArgs && mcpServerArgs.length > 0
|
mcpServerArgs && mcpServerArgs.length > 0
|
||||||
? [`--args`, mcpServerArgs.join(" ")]
|
? `--args=${mcpServerArgs.join(" ")}`
|
||||||
: []),
|
: "",
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
env: {
|
env: {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue