javascript - own - Node js commander args devuelve true en lugar del valor
create cli with node js (3)
Debe especificar que las opciones toman un argumento y que no son solo una bandera
program
.version(''0.0.1'')
.option(''-s, --src <file>'', ''src csv file'')
.option(''-d, --destination <file>'', ''destination csv file'')
.parse(process.argv);
Si el argumento es obligatorio, se especifica con <>
. Si es opcional, con []
.
Quiero crear una secuencia de comandos con nodo y comandante de nodo y cuando intento tomar los valores de mis argumentos, obtengo el valor verdadero en lugar del valor en sí mismo.
Por ejemplo si escribo esto en terminal:
node myfile.js -s somefile -d test
var program = require(''commander'');
program
.version(''0.0.1'')
.option(''-s, --src'', ''src csv file'')
.option(''-d, --destination'', ''destination csv file'')
.parse(process.argv);
console.log(program.src); // return true
console.log(program.destination); // return true
¿Cómo obtengo el valor de este args?
La documentation no es muy clara y solo muestra esto con el ejemplo, pero la sintaxis que ha usado ( ''-s, --src''
) es para valores booleanos.
Si quieres tomar una cadena, debes decirlo: ''-s, --src <item>''
No estás especificando que las opciones toman entrada. Puede hacer esto incluyendo <data>
o [data]
(si es opcional) en sus definiciones de opciones:
.option(''-s, --src <src>'', ''src csv file'') .option(''-d, --dest [dest]'', ''destination csv file'')