
This post covers an example of how to read command-line arguments from a nodejs application.
In Nodejs, There are many ways we can read command line parameters from a terminal.
- parse with process.argv variable
- minimist library
- yargs npm library
How to read command line arguments using process argv variable
the process is an environment variable to hold nodejs environment information.
argv
parameter stores command line information and return an array of command-line arguments.
I have created a simple javascript file and just printed the process.argv
command.js
console.log(process.argv)
And run the above script using the below command
node command.js argument
And, output you see is
[ 'C:\\Program Files\\nodejs\\node.exe',
'B:\\nodeapp\\command.js',
'argument' ]
As you see, process.argv returning array of three elements
- First, element is node command with complete absolute path
- second, element is file location with absolute path
- Finally, element is argument is the argument that you passed in terminal
Here is an example to iterate command-line arguments with forEach loop
process.argv.forEach(function (item, index, temp) {
console.log(index + ': ' + item);
});
Output
0: C:\Program Files\nodejs\node.exe
1: B:\nodeapp\command.js
2: kiran
parse command line parameters with yargs
yargs npm
is a common and easy-to-use library for writing custom command-line commands. Even though the purpose is different, we could still use a nodejs application to parse command-line arguments.
First, Install the library using the below command
npm i yargs
if you want to have typescript support, you can install type definitions as below
npm i @types/yargs --save-dev
Here is the sample code to read command arguments
const yargs = require('yargs/yargs')
const { hideBin } = require('yargs/helpers')
const argv = yargs(hideBin(process.argv)).argv
console.log(argv)
minimist parse command line arguments
minimist
is a simple and easy to use a library to parse terminal arguments from a command line
First, Install minimist using the below command
npm i minimist
Here is an example using minimist npm library
var argv = require('minimist')(process.argv.slice(2));
console.log(argv);
and output is
{ _: [ 'folder' ] }
wrap up
There are below libraries other than minimist
and yargs
to parse command-line arguments in the NodeJS application
- commander.js
- meow js
- vorpal js
Also documented, we can read without libraries using process.argv environment variable.