1

我正在尝试创建 yargs 命令,当我运行应用程序时出现错误。

当我运行以下命令时:

node app.js add

在我的 node.js 代码上:

const yargs = require('yargs')
yargs.command({
    command:'add',
    describe:'Adding command',
    handler:function(){
        console.log('Adding notes')
    }
}).parse()

console.log('yargs.argv')

错误:

C:\node\notes-app\app.js:3
yargs.command({
      ^
**TypeError: yargs.command is not a function**
    at Object.<anonymous> (C:\node\notes-app\app.js:3:7)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47

  • 亚格斯版本:1.1.0
  • 节点版本:v14.16.0
  • vs 代码版本
  • 1.55.2(用户设置)操作系统:Window 10

编辑:(我已经查看过这个问题,但它没有帮助,因为已经添加了 .parse()

4

2 回答 2

1

尝试以下几行。

const yargs = require('yargs')
const {hideBin} = require('yargs/helpers')
yargs(hideBin(process.argv)).command({
    command:'add',
    describe:'Adding command',
    handler:function(){
        console.log('Adding notes')
    }
}).parse()
console.log('yargs.argv')
于 2021-12-20T12:20:49.407 回答
0

Yargs 1.1.0 是很久以前的事了,实际上是 7 年。那时候他们还没有这个.command()方法。

https://www.npmjs.com/package/yargs/v/1.1.0

最简单的解决方案就是更新。您应该能够使用节点 v14.16 访问至少 v14 或 v15。

如果您不想这样做,则需要添加自己的小型命令解析器:

const argv = require('yargs').argv;

if(argv._[0] === "add") {
   // ...
} 
于 2021-05-21T02:17:25.530 回答