{

How to read command line arguments in Nodejs application?


command line arguments nodejs Example

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, the output you see is

[ 'C:\\Program Files\\nodejs\\node.exe',
  'B:\\nodeapp\\command.js',
  'argument' ]

As you see, process. argv returning an array of three elements

  • First, the element is a node command with a complete absolute path
  • second, the element is file location with absolute path
  • Finally, the element is argument is the argument that you passed in terminal

Here is an example to iterate command-line arguments with a 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 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 the process.argv environment variable.

THE BEST NEWSLETTER ANYWHERE
Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
Subscribe
You'll get a notification every time a post gets published here.