Introduction to nopt
The nopt package is a versatile parser for command-line arguments in Node.js. It’s highly configurable and easy to use, making it a popular choice for developers who need to parse options and arguments from the command line. In this article, we’ll explore various APIs offered by nopt along with practical code examples to demonstrate its usage.
Installing nopt
First, you’ll need to install nopt in your project:
npm install nopt
Basic Usage
The following example demonstrates how to use nopt to define a simple set of options and parse them:
const nopt = require('nopt'); const path = require('path'); // Define known options and shorthands const knownOpts = { "help": Boolean, "version": Boolean, "config": path }; const shortHands = { "h": ["--help"], "v": ["--version"], "c": ["--config"] }; // Parse process arguments const parsed = nopt(knownOpts, shortHands, process.argv, 2); console.log(parsed);
Extending Option Parsing
Here we extend the parsing capabilities to include arrays and non-standard data types:
const nopt = require('nopt'); const knownOpts = { "list": [String, Array], "num": Number }; const shortHands = { "l": ["--list"], "n": ["--num"] }; const parsed = nopt(knownOpts, shortHands, process.argv, 2); console.log(parsed);
Handling Defaults and Type Coercion
nopt can also handle default values and coercion of types:
const nopt = require('nopt'); const knownOpts = { "verbose": Boolean, "depth": Number }; const parsed = nopt(knownOpts, {}, process.argv, 2, { verbose: false, depth: 0 }); console.log(parsed);
Example Application
Let’s build a simple command-line application that uses the nopt package to parse various arguments:
const nopt = require('nopt'); const path = require('path'); const knownOpts = { "input": path, "output": path, "help": Boolean }; const shortHands = { "i": ["--input"], "o": ["--output"], "h": ["--help"] }; const parsed = nopt(knownOpts, shortHands, process.argv, 2); if (parsed.help) { console.log("Usage: node app.js --input--output "); } else { console.log(`Input file: ${parsed.input}`); console.log(`Output file: ${parsed.output}`); }
Conclusion
The nopt package is a powerful tool that simplifies command line argument parsing in Node.js. By defining known options and shorthand aliases, you can create versatile applications that handle a variety of command line inputs gracefully.
Hash: 0e7ce202a69218fa110f7d0f9cfe6d137fba295ebb6e740ef79b2ff8947d8c74