Introduction to nopt
nopt
is a powerful and flexible command-line option parsing tool for Node.js applications. It allows developers to define expected command-line arguments, handle short options, and manage various data types effortlessly. This article will provide an extensive overview of nopt
and showcase numerous practical API examples to help you master its usage.
Installation
To use nopt
, you need to install it via npm:
npm install nopt
Defining Options
You can define the expected options using an object where the key is the long option name and the value is the data type:
const nopt = require('nopt');
const knownOptions = { 'help': Boolean, 'version': Boolean, 'name': String, 'age': Number, 'debug': Boolean };
const parsed = nopt(knownOptions, process.argv, 2);
console.log(parsed);
Handling Short Options
nopt
supports short options which can be mapped to long options. Here’s how:
const shortOptions = { 'h': '--help', 'v': '--version', 'n': '--name', 'a': '--age', 'd': '--debug' };
const parsed = nopt(knownOptions, shortOptions, process.argv, 2);
console.log(parsed);
Working with Types
nopt
intelligently parses argument types based on the options defined:
const knownOptions = { 'list': [String], 'count': [Number], 'flag': Boolean };
const parsed = nopt(knownOptions, process.argv, 2);
console.log(parsed);
Setting Defaults
You can set default values for options that are not specified on the command line:
const defaults = { name: 'Anonymous', age: 30 };
const parsed = nopt(knownOptions, process.argv, 2, defaults);
console.log(parsed);
Validation and Error Handling
nopt throws an error for invalid inputs, which you can handle as shown below:
try { const parsed = nopt(knownOptions, process.argv, 2); console.log(parsed); } catch (error) { console.error('Error parsing options:', error.message); }
An Example Application
Below is an example application utilizing various nopt
functionalities:
const nopt = require('nopt');
const knownOptions = { 'help': Boolean, 'version': Boolean, 'name': String, 'age': Number, 'debug': Boolean, 'list': [String] };
const shortOptions = { 'h': '--help', 'v': '--version', 'n': '--name', 'a': '--age', 'd': '--debug', 'l': '--list' };
const defaults = { name: 'Anonymous', age: 30, debug: false };
const parsed = nopt(knownOptions, shortOptions, process.argv, 2, defaults);
if (parsed.help) { console.log('Usage: script.js [options]'); console.log('Options:'); console.log('--help (-h) Print this help message'); console.log('--version (-v) Print the version'); console.log('--name (-n) Specify the name'); console.log('--age (-a) Specify the age'); console.log('--debug (-d) Enable debug mode'); console.log('--list (-l) Provide a list of strings'); process.exit(0); }
if (parsed.version) { console.log('Version: 1.0.0'); process.exit(0); }
console.log('Parsed arguments:', parsed);
if (parsed.debug) { console.log('Debug mode is enabled'); }
With these examples and explanations, you should have a thorough understanding of how to utilize nopt
in your Node.js applications. Happy coding!
Hash: 0e7ce202a69218fa110f7d0f9cfe6d137fba295ebb6e740ef79b2ff8947d8c74