Ошибка выведения Commander.js при попытке передать строку в обязательное поле - PullRequest
0 голосов
/ 28 апреля 2019

Я просто пытаюсь передать значение в виде строки в качестве обязательного поля

import commander from 'commander';

const split = (str: string) => {
    return str.split(',')
};

export const cli = () => {
    commander
        .version('0.0.1')
        .option('-q --query <value>', `Add query example: -q #javascript`, '#javascript')
        .option('-s --min [n]', `Add min amount of time to wait before each action example: -s 2500`, 2500)
        .option('-l --max [n]', `Add max amount of time to wait before each action example: -l 240000`, 240000)
        .option('-d --duration [n]', `Duration in hours example: -d 24`, 1)
        .option('-a --actions <list>', `Actions to use example: -a like, follow`, split, [])
        .parse(process.argv)
        .on('error', () => {
            commander.outputHelp();
            process.exit();
        });

    return commander;
}

Я работаю

 $ ts-node ./index.ts -q #java -s 2403 -l 240001 -d 2 -a follow,like

 /* 
    starting tweety bot ?
    error: option `-q --query <value>' argument missing
 */

Я предоставляю значение, но все еще выдает,Если я изменяю на необязательные поля, он просто возвращает defaultValue, а не передается.

1 Ответ

0 голосов
/ 28 апреля 2019

Оказывается, вам нужно добавить кавычки, которые я пропустил после того, как массив не работал с кавычками.

ts-node ./index.ts -q '#java' -s 2403 -l 240001 -d 2 -a follow,like

...