0

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

const yargs = require('yargs')

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

我想让我的 console.log 在我输入时显示“一些文本”,'node app.js mycommand'但实际上我只有 args 数组:

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

4

3 回答 3

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”(参数向量)。

于 2019-06-15T19:39:49.393 回答
0

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

  1. console.log(yargs.argv)

  2. yargs.parse()

完成代码后应添加其中任何一个。

PS:如果您使用console.log(yargs.argv), argv 对象将与您想要的结果一起打印。

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

const yargs = require('yargs');

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

yargs.parse();
于 2019-12-25T11:25:11.500 回答
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 添加

于 2019-07-08T06:27:45.343 回答