Вы можете использовать Промежуточное программное обеспечение , которое обеспечивает преобразование проанализированных аргументов перед выполнением команд.
-------------- -------------- ---------
stdin ----> argv ----> | Middleware 1 | ----> | Middleware 2 | ---> | Command |
-------------- -------------- ---------
Однако то же самое вы можете использовать для очистки кэша.
Пример промежуточного программного обеспечения
const { promisify } = require('util') // since node 8.0.0
const readFile = promisify(require('fs').readFile)
const normalizeCredentials = (argv) => {
if (!argv.username || !argv.password) {
return readFile('~/.credentials').then(data => JSON.parse(data))
}
return {}
}
// Add normalizeCredentials to yargs
yargs.middleware(normalizeCredentials)
// yargs parsing configuration
var argv = require('yargs')
.usage('Usage: $0 <command> [options]')
.command('login', 'Authenticate user', (yargs) =>{
return yargs.option('username')
.option('password')
} ,(argv) => {
authenticateUser(argv.username, argv.password)
},
[normalizeCredentials]
)
.argv;