What is string-argv?
The string-argv npm package is used to parse string representations of command-line arguments into an array format, similar to how the arguments would be received in a Node.js script when running from the command line. It can handle quoted arguments, escaped characters, and supports both single and double quotes.
What are string-argv's main functionalities?
Parsing command-line argument strings
This feature allows you to convert a string that represents command-line arguments into an array of arguments, as they would appear in process.argv in a Node.js application.
const parseArgs = require('string-argv');
const args = parseArgs('node app.js --option=value "argument with spaces"');
console.log(args);
Other packages similar to string-argv
yargs-parser
yargs-parser is a powerful argument parsing library that can parse command line arguments and generate an object. It supports various features like boolean flags, number parsing, arrays, and more. It is more feature-rich compared to string-argv, which focuses on converting a string to an argv array.
minimist
minimist is a minimalistic argument parsing library that also converts command line arguments to an object. It is simpler and has fewer features than yargs-parser but is similar to string-argv in its simplicity and direct approach to parsing arguments.
commander
commander is a complete solution for node.js command-line interfaces, which is capable of parsing command line arguments and also includes a variety of other features like subcommands, custom help, auto-version, and more. It is more complex and feature-complete compared to string-argv, which is more focused on argument parsing.
What is it?
string-argv
parses a string into an argument array to mimic process.argv
.
This is useful when testing Command Line Utilities that you want to pass arguments to and is the opposite of what the other argv utilities do.
Installation
npm install string-argv --save
Usage
var stringArgv = require('string-argv');
var args = stringArgv(
'-testing test -valid=true --quotes "test quotes" "nested \'quotes\'" --key="some value" --title="Peter\'s Friends"',
'node',
'testing.js'
);
var args2 = stringArgv.parseArgsStringToArgv(
'-testing test -valid=true --quotes "test quotes" "nested \'quotes\'" --key="some value" --title="Peter\'s Friends"',
'node',
'testing.js'
);
console.log(args);
params
required: arguments String: arguments that you would normally pass to the command line.
optional: environment String: Adds to the environment position in the argv array. If ommitted then there is no need to call argv.split(2) to remove the environment/file values. However if your cli.parse method expects a valid argv value then you should include this value.
optional: file String: file that called the arguments. If omitted then there is no need to call argv.split(2) to remove the environment/file values. However if your cli.parse method expects a valid argv value then you should include this value.