with own node create commander cli javascript node.js node-commander

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'')