Spaces:
Sleeping
Sleeping
| const { chalk } = require('@vue/cli-shared-utils') | |
| const getPadLength = require('../util/getPadLength') | |
| module.exports = (api, options) => { | |
| api.registerCommand('help', args => { | |
| const commandName = args._[0] | |
| if (!commandName) { | |
| logMainHelp() | |
| } else { | |
| logHelpForCommand(commandName, api.service.commands[commandName]) | |
| } | |
| }) | |
| function logMainHelp () { | |
| console.log( | |
| `\n Usage: vue-cli-service <command> [options]\n` + | |
| `\n Commands:\n` | |
| ) | |
| const commands = api.service.commands | |
| const padLength = getPadLength(commands) | |
| for (const name in commands) { | |
| if (name !== 'help') { | |
| const opts = commands[name].opts || {} | |
| console.log(` ${ | |
| chalk.blue(name.padEnd(padLength)) | |
| }${ | |
| opts.description || '' | |
| }`) | |
| } | |
| } | |
| console.log(`\n run ${ | |
| chalk.green(`vue-cli-service help [command]`) | |
| } for usage of a specific command.\n`) | |
| } | |
| function logHelpForCommand (name, command) { | |
| if (!command) { | |
| console.log(chalk.red(`\n command "${name}" does not exist.`)) | |
| } else { | |
| const opts = command.opts || {} | |
| if (opts.usage) { | |
| console.log(`\n Usage: ${opts.usage}`) | |
| } | |
| if (opts.options) { | |
| console.log(`\n Options:\n`) | |
| const padLength = getPadLength(opts.options) | |
| for (const [flags, description] of Object.entries(opts.options)) { | |
| console.log(` ${ | |
| chalk.blue(flags.padEnd(padLength)) | |
| }${ | |
| description | |
| }`) | |
| } | |
| } | |
| if (opts.details) { | |
| console.log() | |
| console.log(opts.details.split('\n').map(line => ` ${line}`).join('\n')) | |
| } | |
| console.log() | |
| } | |
| } | |
| } | |