What is @oclif/plugin-help?
The @oclif/plugin-help package is designed to provide a help system for CLI (Command Line Interface) applications built with the oclif (Open CLI Framework). It allows developers to automatically generate and customize help output for their CLI commands.
What are @oclif/plugin-help's main functionalities?
Automatic help generation
This feature automatically generates help text for a specific command within an oclif CLI application. The help text includes the command's description, usage, arguments, flags, and examples.
const { Command, flags } = require('@oclif/command');
const Help = require('@oclif/plugin-help').default;
class MyCommand extends Command {
async run() {
// your command logic here
}
}
MyCommand.description = 'Description of my command';
const help = new Help(this.config);
help.showHelp(['mycommand']);
Custom help classes
Developers can extend the default Help class to create custom help output. This allows for greater control over the formatting and content of the help text displayed to the user.
const { Command } = require('@oclif/command');
const { Help } = require('@oclif/plugin-help');
class MyHelpClass extends Help {
// override methods to customize help output
}
class MyCommand extends Command {
static helpClass = MyHelpClass;
async run() {
// your command logic here
}
}
Other packages similar to @oclif/plugin-help
yargs
Yargs is a powerful npm package that helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. It provides features similar to @oclif/plugin-help, such as automatic help generation and command-specific help, but it is a more general-purpose CLI framework.
commander
Commander is another npm package for node.js designed to make it easy to write full-featured command line applications. It also automatically generates help information for commands. Commander is less opinionated than oclif and does not enforce a specific project structure.
caporal
Caporal is a full-featured framework for building command line applications (CLI) with Node.js, which includes a powerful help system. It provides a similar level of abstraction as oclif and includes automatic help generation, but with a different API design and feature set.