So today, we are going to build a simple command line app that echoes a message supplied to the apps default argument. We are going to use Yargs to accomplish it.
Requirements
Nodejs and Npm.
Prerequisities.
To start and fully understand this tutorial, you need to have the knowledge of :
- Javascript (ES6)
- NodeJS
Setting up our project.
Lets start this tutorial now. So i'll name the command line app name laisi. We'll create a folder named laisi and initialize it with npm.
mkdir laisi && cd laisi && npm init -y
Edit your package.json
{
"name": "laisi",
"version": "1.0.0",
"description": "Simple command line app",
"main": "index.js",
"keywords": [],
"author": "Abdulazeez Abdulazeez Adeshina <laisibizness@gmail.com> (http://twitter.com/kvng_zeez)",
"license": "MIT",
"dependencies": {
"yargs": "^10.0.3"
}
Writing our app.
We'll create a new file index.js
and add this to it:
#!/usr/bin/env node
The code above tells the app that its a command line app such that it can be run from any angle. :) After that, we require yargs and set it up.
const argv = require('yargs')
.usage('Usage: $0 option message \n e.g $0 -s message')
.alias('s', 'message')
.nargs('s', 1)
.describe('s', 'Say message')
.demandOption(['s'])
.help('h')
.alias('h', 'help')
.epilog('Copyright Abdul 2017')
.argv
Code Explanation
The
.usage
is responsible for displaying the instructions on how to make use of our app. The $0 there represents the name of the file where our code is stored i.e index.js.The
.alias
defines the default argument-s
which our messages will be supplied upon.The
.nargs
simply means the number of arguments-s
can take and its set to 1.The
.describe
further explains the-s
argument.The
.demandOption
makes sure the argument is supplied.The
.help
displays the option again.
Logging out message passed.
To log the message supplied to the argument to the console, we'll add this to the end of our index.js
console.log(argv.s);
Making it fully command line.
To make our app fully command line, we'll make our index.js executable with the command:
chmod +x index.js
and add this to your package.json
"bin": {
"laisi": "./index.js"
}
After that, we'll link our app to make it available globally
sudo npm link
Upon using the command above, we have our app as a command line. To verify our process, call our app from the command line
laisi
and you should get this screen.
After that, we can now install our app with the command :
sudo npm i -g
Comments
Post a Comment