NodeJS 面对这个错误:TypeError:yargs.命令不是函数

e37o9pze  于 2022-12-18  发布在  Node.js
关注(0)|答案(2)|浏览(129)

我正在尝试运行yargs.command命令。我尝试运行以下代码片段:

import yargs from "yargs";
yargs.command({
  command: "list",
  describe: "List all commands",
  handler: function () {
    console.log("Listing all commands.");
  },
});

yargs.command({
  command: "read",
  describe: "Reading all commands",
  handler: function () {
    console.log("Reading all commands");
  },
});

我在输出中得到了这个错误:

TypeError: yargs.command is not a function
    at file:///media/Main-Volume/courses/Udemy%20courses/Node%20JS%20bootcamp/notes-app/app.js:23:7
    at ModuleJob.run (internal/modules/esm/module_job.js:145:37)
    at async Loader.import (internal/modules/esm/loader.js:182:24)
    at async Object.loadESM (internal/process/esm_loader.js:68:5)

在互联网上搜索后,我发现了这个solution,并在代码末尾添加了以下语句:yargs.parse() .但不幸的是,我仍然得到相同的输出。
我的操作系统:21.
节点:12.22.5。
Yarn:17.4.1.
VS代码:1.66.2。
有人知道哪里出了问题吗?任何帮助都将不胜感激。

2w3kk1z5

2w3kk1z51#

yargs是一个函数,它返回具有所需.command属性的对象。

yargs(hideBin(process.argv))
  .command('curl <url>', 'fetch the contents of the URL', () => {}, (argv) => {
    console.info(argv)
  })
  .demandCommand(1)
  .parse()

您的代码应类似于以下内容:

import yargs from "yargs";
import {hideBin} from "yargs/helpers";

yargs(hideBin(process.argv))
    .command('list', 'List all commands', /*handler*/)
    .command(/*...*/)
    .parse();
0pizxfdo

0pizxfdo2#

//以下内容错误
'yargs.命令({命令:
})`
下面是正确的
yargs({命令:})

相关问题