Introduction to Dargs
Dargs is a powerful npm module that simplifies the process of converting an object of arguments into an array of command-line arguments. It is commonly used in Node.js projects and provides a clean and efficient way to handle user inputs from the command line. In this article, we will explore the various APIs offered by Dargs with practical code snippets, making it easier for you to integrate it into your projects effectively.
Basic Usage
Let’s start with a basic example of how to use Dargs:
const dargs = require('dargs');
const args = {
_: ['start'], // an argument
production: true, // a flag as --production
port: 8080 // a value as --port=8080
};
const cliArgs = dargs(args);
console.log(cliArgs); // Outputs: ['start', '--production', '--port', '8080']
Excluding Arguments
You can exclude specific arguments from being parsed by using the exclude
option:
const dargs = require('dargs');
const args = {
_: ['start'],
debug: true,
silent: true
};
const cliArgs = dargs(args, { exclude: ['silent'] });
console.log(cliArgs); // Outputs: ['start', '--debug']
Including Only Specific Arguments
It is possible to include only specific arguments using the includes
option:
const dargs = require('dargs');
const args = {
_: ['build'],
production: true,
sourcemaps: true,
minify: false
};
const cliArgs = dargs(args, { includes: ['production', 'minify'] });
console.log(cliArgs); // Outputs: ['build', '--production', '--no-minify']
Mapping Argument Names
Dargs allows you to map argument names to different command-line flags:
const dargs = require('dargs');
const args = {
env: 'production',
minimize: true
};
const cliArgs = dargs(args, { map: { minimize: 'm' } });
console.log(cliArgs); // Outputs: ['--env=production', '-m']
Example App Using Dargs
Let’s see a more complete example of an application using Dargs. This app will start a Node.js server, taking various runtime configurations from command-line arguments:
const http = require('http');
const dargs = require('dargs');
const args = {
_: ['server.js'],
port: process.env.PORT || 3000,
mode: process.env.MODE || 'development'
};
const cliArgs = dargs(args);
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('Server is running');
res.end();
});
server.listen(cliArgs.port, () => {
console.log(`Server is running in ${cliArgs.mode} mode on port ${cliArgs.port}`);
});
In this example, we are launching a server that listens for a port and mode specified via command-line arguments. The modes are designed to be either ‘development’ or ‘production’, and the port defaults to 3000 if not specified.
With these APIs and examples, you should be able to efficiently parse command-line arguments in your Node.js projects using Dargs.
Hash: 427acc920606545489d53f42f556d108b5f32094df4c1eb49f9d9ad866784b4f