终端不显示处理程序值

时间:2019-03-27 06:37:38

标签: node.js terminal command yargs

我正在学习node.js,我遇到了第一个问题。当我安装yargs并尝试创建yargs命令时,它不会显示在终端中。当我在终端中键入'node app.js mycommand'时,它只返回我的args数组,没有我的命令,但是如果我键入'node app.js --help',则返回每个命令。我在做错什么吗?

  

const yargs = require('yargs')

     

yargs.command({       命令:“ mycommand”,       描述:“ mydesc”,       处理程序:()=> {console.log('some text')}})

当我输入'node app.js mycommand'时我想拥有console.log,但实际上我只有一个args数组

  

{_:['mycommand'],'$ 0':'app.js'}

3 个答案:

答案 0 :(得分:0)

您应在代码末尾添加.parse()。就是这样。

const yargs = require('yargs')

 yargs.command({
     command: 'mycommand',
     describe: 'mydesc',
     handler: () => { console.log('some text') } }).parse()

如果您有太多这样的命令,则不要在每个命令中都使用parse(),只需在代码下方输入以下内容即可:

yargs.parse()

或在您的代码下方输入

console.log(yargs.argv)

但是,这也会打印出“ argv”(参数向量)。

答案 1 :(得分:0)

使用yargs.argv;.parse()

yargs.command({
  command: 'add',
  describe: 'This is add param',
  handler: function() {
    console.log("This is add notes command ");
  }
});
yargs.argv;

yargs.command({
  command: 'add',
  describe: 'This is add param',
  handler: function() {
    console.log("This is add notes command ");
  }
}).parse();

运行它...

节点app.js添加

答案 2 :(得分:0)

您的代码是只写的。但是您没有显示命令。这就是您什么都看不到的原因。您可以通过两种方式解决此问题。

  1. [*np.sort(df['Age'].unique())[:2]] #[18, 23]

  2. console.log(yargs.argv)

这两个都应该在完成代码后添加。

PS:如果使用yargs.parse(),则将打印argv对象以及所需的结果。

如果仍然感到困惑,请随时检查以下代码

console.log(yargs.argv)