Me gustaría escribir una aplicación CLI que tome un argumento opcional.
import { Command } from 'commander'; const program = new Command(); program.argument('[a]'); program.action((a) => console.log(`a = ${a}`)); program.parse(); console.log(program.args);Si lo ejecuto con 0 o 1 argumentos, funciona como se esperaba. Sin embargo, no puedo ver una forma limpia de verificar que toda la línea de comando haya sido consumida por argumentos. Me gustaría dar un error si hay algún argumento de línea de comando final. ¿Cuál es la mejor manera de lograr eso?
$ node no-trailing-args.js a = undefined [] $ node no-trailing-args.js 1 a = 1 [ '1' ] $ node no-trailing-args.js 1 2 a = 1 [ '1', '2' ] $De forma predeterminada, no es un error pasar más argumentos de los declarados, pero puede convertirlo en un error con .allowExcessArguments(false) .
program.allowExcessArguments(false);